1. 安装redis
pip install redis

2. 连接redis
Redis提供了两个类Redis和StrictRedis来实现Redis的命令操作。官方推荐使用StrictRedis
- 使用StrictRedis连接
from redis import StrictRedis
redis = StrictRedis(host='localhost', port='6379')
redis.set('name', 'caixukun')
print(redis.get('name'))
输出结果
b'caixukun'
- 使用ConnetionPool连接
from redis import ConnectionPool, StrictRedis
pool = ConnectionPool(host='127.0.0.1', port='6379')
redis = StrictRedis(connection_pool=pool)
print(redis.get('name'))
输出结果
b'caixukun'
StrictRedis内其实就是用host和port等参数构造了一个ConnectionPool,所以直接将ConnectionPool当作参数传给StrictRedis也一样
3. 键常用操作
判断一个键是否存在
print(redis.exists('name'))
删除一个键
print(redis.delete('name'))
判断键类型
print(redis.type('name'))
重命名键,如将name重命名为nickname
print(redis.rename('name', 'nickname'))
设置键的过期时间,单位为秒
print(redis.expire('nickname', 5))
获取键的过期时间,单位为秒,-1表示永久不过期
print(redis.ttl('nickname'))
输出结果
# 1 表示存在
1
# 1 表示删除成功
1
# 类型为字符串
b'string'
# 重命名成功
True
# 设置过期时间成功
True
# 获取过期时间为5秒
5
4. 字符串操作
set(name,value),赋值
print(redis.set('name', 'caixukun'))
get(name),取值
print(redis.get('name'))
append(name,value),追加值
print(redis.append('name', 'basketball'))
substr(name,start,end=-1),返回子串
print(redis.substr('name', 1, 10))
getrange(name,start,end),返回子串
print(redis.getrange('name', 1, 10))
substr(name,start,end=-1),返回子串,-1表示截取到末尾
print(redis.substr('name', 0, -1))
输出结果
# 赋值成功
True
# 取值
b'caixukun'
# 追加成功
18
# 返回子串
b'aixukunbas'
b'aixukunbas'
b'caixukunbasketball'
5. 列表操作
rpush(name,*value) 列表末尾追加
print(redis.rpush('caixukun', 'sing', 'dance', 'rap'))
lpush(name,*value) 列表头部追加
print(redis.lpush('caixukun', 'basketball'))
llen(name) 列表长度
print(redis.llen('caixukun'))
lrange(name,start,end) 返回元素
print(redis.lrange('caixukun', 1, 3))
lindex(name,index) 返回index位置的元素
print(redis.lindex('caixukun', 1))
删除首元素
print(redis.lpop('caixukun'))
删除尾元素
print(redis.rpop('caixukun'))
输出结果
3
4
4
[b'sing', b'dance', b'rap']
b'sing'
b'basketball'
b'rap'
6. 哈希操作
hset(name,key,value) 添加映射
print(redis.hset('caixukun', 'hobby1', 'sing'))
hsetnx(name,key,value) 映射名不存在则添加
print(redis.hsetnx('caixukun', 'hobby2', 'dance'))
hget(name,key) 获取对应的值
print(redis.hget('caixukun', 'hobby1'))
hmget(name,*keys) 各个键对应的值
print(redis.hmget('caixukun', ['hobby1', 'hobby2']))
hdel(name,*keys) 删除对应的映射
print(redis.hdel('caixukun', 'hobby1'))
hlen(name) 获取映射个数
print(redis.hlen('caixukun'))
hvals(name) 所有映射值
print(redis.hvals('caixukun'))
输出结果
1
1
b'sing'
[b'sing', b'dance']
1
1
[b'dance']
7. 集合操作
sadd(name,*value) 向键为name的集合添加元素
print(redis.sadd('caixukun', 'sing', 'dance', 'rap', 'basketball'))
spop(name) 随机删除一个元素
print(redis.spop('caixukun'))
scard(name) 返回集合个数
print(redis.scard('caixukun'))
smembers(name) 返回所有元素
print(redis.smembers('caixukun'))
输出结果
4
b'dance'
3
{b'rap', b'basketball', b'sing'}
8. 有序集合操作
略
网友评论