安装
ubuntu下安装
sudo apt-get install redis
基本操作
连接方式:
- 严格连接模式:r=redis.StrictRedis(host=”“,port=)
- 更Python化的连接模式:r=redis.Redis(host=”“,port=)
- StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令
- Redis与StrictRedis的区别是:Redis是StrictRedis的子类,用于向前兼容旧版本的redis-py,并且这个连接方式是更加”python化”的
- 连接池
为了节省资源,减少多次连接损耗,连接池的作用相当于总揽多个客户端与服务端的连接,当新客户端需要连接时,只需要到连接池获取一个连接即可,实际上只是一个连接共享给多个客户端。
如下我们使用连接池方式连接redis:
import redis
pool = redis.ConnectionPool(host='localhost', port=6379, db=0, decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.set('a','3')
print(r.get('a'))
3
默认情况下,设置的值或取得的值都为bytes类型,如果想改为str类型,需要在连接时添加上decode_responses=True
增加
在Redis中设置值,默认不存在则创建,存在则修改
r.set(‘name’, ‘zhangsan’)
参数:
set(name, value, ex=None, px=None, nx=False, xx=False)
ex,过期时间(秒)
px,过期时间(毫秒)
nx,如果设置为True,则只有name不存在时,当前set操作才执行,同setnx(name, value)
xx,如果设置为True,则只有name存在时,当前set操作才执行
# 批量设置
r.mset(a1='1',a2='2')
#r.mset({'a1':'1','a2':'2'})
# 批量获取 r.mget()
print(r.mget('a1','a2'))
['1', '2']
查找获取
r.get('key_name')
#根据字节获取子序列
r.set("name","zhangsan")
print(r.getrange("name",0,3))
zhan
修改
#修改字符串内容,从指定字符串索引开始向后替换,如果新值太长时,则向后添加
r.set("name","zhangsan")
r.setrange("name",1,"z")
print(r.get("name"))
r.setrange("name",6,"zzzzzzz")
print(r.get("name"))
zzangsan
zzangszzzzzzz
删除
delete(*names)
根据删除redis中的任意数据类型(string、hash、list、set、有序set)
r.delete("gender") # 删除key为gender的键值对
1
获取长度
#返回name对应值的字节长度(一个汉字3个字节)
r.set("name","zhangsan")
print(r.strlen("name"))
8
检查名字是否存在
exists(name)
检测redis的name是否存在,存在就是True,False 不存在
hash操作
redis中的Hash 在内存中类似于一个name对应一个dic来存储
新增/修改
hset(‘dic_name’,’key’,’value’)
如果存在该dic,则增加(key,value), 不存在则创建,如果key在dic里面是存在的,就修改该key的值
#name对应的hash中设置