我是靠谱客的博主 义气店员,最近开发中收集的这篇文章主要介绍redis 自增_Python 数据库骚操作 -- Redis,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

c02554b0d3acf35b21dcc505a6b1dc3b.png

目录

  • 前言
  • Redis GUI 工具
  • Redis 遇上 Docker
  • Redis string
  • Redis hash
  • Redis list
  • Redis set
  • Redis zset
  • 后记

前言

前面一篇文章介绍了 MongoDB 的库,我把 MySQL 放在了最后面,这篇文章继续介绍 Redis 的操作。Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。接下来会简单介绍一下,Python 与 Redis 的化学反应。

b3f2b00ff06883ba61ffc871eacfc456.png

Redis GUI 工具

首先介绍一款 Redis 的 GUI 工具 Medis,初学 Redis 用这个来查看数据真的很爽。可以即时看到数据的增删改查,不用操作命令行来查看。

08e13c9385c27dc87d5779d2eababd7a.png


主界面

44541ae5236da5806dcf13ddeeef6d8b.png


操作界面图

Redis 遇上 Docker

能跟 Docker 扯上关系的,我都会粗略地说一下。这里主要贴一贴配置代码,docker-compose 代码如下。

version: '3'
services:
  redis_container:
    image: redis
    command: redis-server --requirepass yourpassword # 配置 Redis 密码
    ports:
      - "6378:6379" # 映射端口
    volumes:
      - /your/path/data:/data

启动命令

docker-compose up -d

Redis string

install

pip install redis

连接

# 普通连接
r = redis.StrictRedis(host='localhost', port=6379, db=0)
r = redis.StrictRedis(host='localhost', port=6379, password="your password", db=0)

# 连接池
"""
redis-py 使用 connection pool 来管理对一个 redis server 的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池,这样就可以实现多个 Redis 实例共享一个连接池
"""
# host 是 redis 服务 ip,默认端口是6379
pool = redis.ConnectionPool(host='localhost', port=6379,decode_responses=True)  
r = redis.Redis(connection_pool=pool)

增加

set(name, value, ex=None, px=None, nx=False, xx=False)

在Redis中设置值,默认,不存在则创建,存在则修改
参数:
ex,过期时间(秒)
px,过期时间(毫秒)
nx,如果设置为True,则只有name不存在时,当前set操作才执行
xx,如果设置为True,则只有name存在时,当前set操作才执行
# 设置过期时间为 1 秒
r.set('foo', 'zone', ex=1)
# 效果同上
r.setex('foo', 'zone', 1)
# 效果同上
r.psetex('foo', 1000, 'zone')

print(r.get('foo'))

# 休眠两秒后,再打印输出
time.sleep(2)
print(r.get('foo'))

查找

get(key)
普通查找
print(r.get('foo'))
mget(keys, *args)
批量查找
# 批量获取
print(r.mget("k1", "k2"))  # 一次取出多个键对应的值
print(r.mget("k1"))

获取子序列

getrange(key, start, end)
获取子序列(根据字节获取,非字符)
参数:
name,Redis 的 name
start,起始位置(字节)
end,结束位置(字节)
# 一个汉字3个字节 1个字母一个字节
r.set("name", "zonezone")
print(r.getrange('name', 0, 3))
# 获取所有字节
print(r.getrange('name', 0, -1))

cb76267dc31a8ebde3f941cc94f33fb6.png


获取结果

修改

原始值 zonezone ,修改后变为 zone is a boy

setrange(name, offset, value)
修改字符串内容,从指定字符串索引开始向后替换(新值太长时,则向后添加)
参数:
offset,字符串的索引,字节(一个汉字三个字节)
value,要设置的值
r.set("name", "zonezone")
r.setrange("name", 4, " is a boy")
print(r.get("name"))

635b4f5f7012509635d06a268114bc65.png


修字符串成功

返回相应 key 的字符串长度

r.set("name", "zonezone")
print(r.strlen("name"))

自增 name 对应的值(int)

incr(self, name, amount=1)
自增 name对应的值,当name不存在时,则创建name=amount,否则,则自增。
参数:
name,Redis的name
amount,自增数(必须是整数)
r.set("age", 123)
print(r.get("age"))
r.incr("age", amount=1)
print(r.get("age"))

854dd0af70372462bc5daac36cea8d1a.png


自增成功

自增 name 对应的值(float)

incrbyfloat(self, name, amount=1.0)
自增 name对应的值,当name不存在时,则创建name=amount,否则,则自增。
参数:
name,Redis的name
amount,自增数(浮点型)
r.set("age", 123.0)
print(r.get("age"))
r.incrbyfloat("age", amount=0.2)
print(r.get("age"))

4b6df44c86ddc2419b4899992f54b6bf.png

自减 name 对应的值

r.set("age", 123)
r.decr("age", amount=1) # 递减1
print(r.mget("foo1", "foo4"))

追加内容

append(key, value)
在redis name对应的值后面追加内容
参数:
key, redis的name
value, 要追加的字符串

最后

以上就是义气店员为你收集整理的redis 自增_Python 数据库骚操作 -- Redis的全部内容,希望文章能够帮你解决redis 自增_Python 数据库骚操作 -- Redis所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部