获取数据运行

pool = redis.ConnectionPool(
	decode_responses=True,
	host="ip",
	port=6388,
	db=0,
	password="密码",
	max_connections=20,             # 最大连接数
	socket_keepalive=True,          # 保持TCP连接活跃
	health_check_interval=10,       # 健康检查间隔(秒)
	socket_timeout=10,               # 读写操作超时(秒)
	socket_connect_timeout=5,       # 连接建立超时(秒)
	retry_on_timeout=True,          # 超时后自动重试
	client_name="my_app_conn",      # 客户端名称(Redis监控可见)
)
r = redis.Redis(connection_pool=pool)

全局键

r.delete(*names) # 删除一个或多个键的所有数据
r.exists(key) # 判断redis中是否存在某个键
r.rename(key, new_key) # 重命名redis中建名
r.move(key, db_name) # 移动某个键所有数据到某一个db中
r.type(key) # 查看某个键数据结构类型
r.expire(key, time) # 设置过期时间
r.ttl(name) # 获取键的过期时间

String字符串

set(name, value, ex=None, px=None, nx=False, xx=False)
# ex:过期时间(秒),时间到了后redis会自动删除
# px:过期时间(毫秒),时间到了后redis会自动删除。ex、px二选一即可
# nx:如果设置为True,则只有name不存在时,当前set操作才执行
# xx:如果设置为True,则只有name存在时,当前set操作才执行
r.set("name", "goldsunshine") # 设置,如果存在就更新
r.setnx('info', '123') # 存在键添加,不存在不添加
r.setex('name', 1, 'James') # 设置name=James,并且有效期为1s
r.append('yelan', '\tworld')  # 追加数据
r.get("name") #获取
r.delete("name") #删除

list类型

r.rpush('name', 'wang', 'li', 'liu')  # 尾部插入
r.lpush('sex', 'n', 'w', 'n')  # 头部插入(倒序)
results = r.lrange('name', 0, 5)  # 查询(闭区间)
print(results)
result = r.lindex('name', 2)  # 查询指定索引的值
r.lset('name', 1, 'muzi')  # 修改指定索引的值
r.rpop('name')  # 尾部删除key的值
r.lpop('name')  # 头部删除
r.lrem('name', 1, 'liu')  # 指定次数指定删除值
r.llen("name") # 获取列表长度

dict哈希

r.hset('info', 'tel', 177)  # 添加数据
r.hset('info', mapping={'name': 'remuxo', 'sex': 'nan'})  # 添加数据
r.hset('info', 'tel', 150)  # 修改数据(同则修改,无则添加)
r.hget('info', 'tel')  # 查看指定域对应的值
r.hgetall('info')  # 查询所有的field和value(返回一个字典格式)
r.hvals('info')  # 查看所有的值values
r.hkeys('info')  # 查看所有的域field
r.hexists("info",'key')  # 查询是非有某个key
print(result)
r.hdel('info')  # 删除键值对

集合

r.sadd("name", "value1","value2") # 添加
r.srem("name", "value1","value2") # 删除
r.smembers('name') # 查看所有的内容
r.srandmember('name',2) # 随机返回2个
r.scard('name') # 查看集合的长度
r.sismember('name', 'value1') # 判断是否存在
r.sdiff('name', 'value1') # 差集
r.sinter('name', 'value2') # 交集
r.sunion('name', 'value2') # 并集

有序集合

r.zadd("name", {"key": n}) # 有序集合n为数字分数,根据分数排序
r.zincrby("name", 1, "key") # 有序集合key的分数设为1
r.zrem("name", "key") # 删除有序集合key
r.zcard("name") # 有序集合的元素数量
r.zcount("name", 1, 10) # 有序集合的分数在1到10之间的元素数量
r.zscore("name", "key") # 有序集合key的分数
r.zrange("name", 0, -1) # 有序集合的所有元素,按分数排序,返回排序后的元素
r.zrange("name", 0, -1, withscores=True) # 有序集合的所有元素,按分数排序,并返回分数

stream流

# 消息队列相关命令:
# - XADD - 添加消息到末尾
# - XTRIM - 对流进行修剪,限制长度
# - XDEL - 删除消息
# - XLEN - 获取流包含的元素数量,即消息长度
# - XRANGE - 获取消息列表,会自动过滤已经删除的消息
# - XREVRANGE - 反向获取消息列表,ID 从大到小
# - XREAD - 以阻塞或非阻塞方式获取消息列表

r.xadd("name",{"时间":111},) # 添加流信息
r.xtrim('name', maxlen=1000) # 保留最新的1000条消息
r.xtrim('name', maxlen=0) # 等于删除全部消息