Redis(Remote Dictionary Server)是一个开源的 内存中数据结构存储系统,用作数据库、缓存和消息代理。它支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)和范围查询(bitmaps)、超日志(hyperloglogs)和地理空间(geospatial)索引半径查询。
打开终端 输入:
pip install redis
import redis
# port 端口号 默认 6379
client = redis.StrictRedis(host="主机ip",
port=6379,
db=0,password="123456")
# 选择数据库 1 默认16个 0-15
client.select(1)
...
# 相关操作
...
# 保存数据
# client.save()
# 关闭连接
client.close()
# 获取全部键值对
print(client.keys())
# # 获取该键 存储值的 类型
print(client.type('key_list'))
# 设置有效期
client.expire("key_list", 20)
print(client.ttl("key_list"))
# 移除有效期
client.persist("key_list")
# 删除键
client.delete("address")
# string
# 设置string 类型键值对
client.set("id", 101)
# 获取 该键 的值 decode解码
print(client.get("id").decode())
# 设置多个
client.mset({"name": "qiku", "address": "东三街"})
# 获取多个
print(client.mget(["id", "name"]))
# 设置 改键 存活时间
client.setex('id', 30, 101)
# 获取 键 剩余存活时间
print(client.ttl("id"))
# 自增 可设置每次自增数字 将 key 中储存的数字值
client.incr('id', amount=20)
# 自减 将 key 中储存的数字值 可设置每次自减数字
client.decr('id', amount=10)
print(client.get("id").decode())
# key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾
# 若 key 不存在 等同于 set(key,value)
client.append("ad", "wd")
print(client.get('ad').decode())
# 头部擦插入 左
client.lpush("key_list", 1, 2, 3, 4, 5)
# 尾部插入 右
client.rpush("key_list", 0)
# 头部删除 左
client.lpop("key_list")
client.command()
# # 尾部删除 右
client.rpop("key_list")
# 索引取值 查询指定索引的值
print(client.lindex("key_list", 0))
# # 范围索引
print(client.lrange("key_list", 0, 5))
# 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
client.ltrim("key_list",0,1)
# 修改指定索引的值
client.lset("key_list", 1, 3)
# 删除 count 个 value
client.lrem("key_list", count=2, value='3')
# 插入 哈希 键值对
client.hset("key_hash", "key1", "value1")
client.hset("key_hash", "key2", "value2")
# 查询 哈希键值对 中 指定 键的 值
print(client.hget("key_hash", "key1"))
# 查询 哈希键值对 所有键值对
print(client.hgetall("key_hash"))
# 查询 哈希键值对 中 所有 键
print(client.hkeys("key_hash"))
# 查询 哈希键值对 中 所有值
print(client.hvals("key_hash"))
# 删除 哈希键值对 中 指定 键的 字段
client.hdel("key_hash","key1")
# 插入集合
client.sadd("key_set", 1, 2, 3, 4)
# 删除 集合内 多个值
client.srem("key_set", 1, 2, 3)
# 集合内 元素个数
print(client.scard("key_set"))
# 判断集合内 是否 存在 值 返回 0否 1是
print(client.sismember("key_set", 4))
# 输出集合内 所有 值
print(client.smembers("key_set"))
# 两个集合 交集
print(client.sinter("key_set", "key_set2"))
# 两个集合 并集
print(client.sunion("key_set", "key_set2"))
# 两个集合 差集
print(client.sdiff("key_set", "key_set2"))
# 随机移除 集合内一个数 并 返回
print(client.spop("key_set"))
# 有序集合 根据权重 排序 值不可重复
# 添加 值 并写入权重 可根据权重 找到该值
client.zadd("key_zset", {"篮球": 20, "足球": 35})
client.zadd("key_zset", {"排球": 20, "足球": 35})
# 删除 指定值
print(client.zrem("key_zset", "篮球"))
# 有序集合内 值的个数
print(client.zcard("key_zset"))
# 有序集合中指定区间分数的成员数
print(client.zcount("key_zset", 10, 30))
# 值的权重
print(client.zscore("key_zset", "篮球"))
# 已排序 索引区间
print(client.zrange("key_zset", 0, 1))