连接 Redis
import redisc
连接方式:redis提供了2个方法
1:StrictRedis:实现大部分官方的命令
2:Redis:是StrictRedis的子类,用于向后兼容旧版的redis。
官方推荐使用StrictRedis方法。
举例(普通连接):
import redis#decode_responses=True 自动解码r = redis.Redis(host='127.0.0.1',port=6379,password='123456',db=0,decode_responses=True) #默认数据库为0r = redis.StrictRedis(host='10.10.2.14',port=6379,password='123456',decode_responses=True)连接池:connection pool
管理对一个redis server的所有连接,避免每次建立,释放连接的开销。默认,每个redis实例都会维护一个自己的连接池,可以直接建立一个连接池,作为参数传给redis,这样可以实现多个redis实例共享一个连接池。
举例(连接池):
pool = redis.ConnectionPool(host='127.0.0.1',port=6379,password='123456',decode_responses=True)r = redis.Redis(connection_pool=pool)
一 STRING 字符串的操作
1. r.set 设置值
#在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.get('name')
3. mset 批量设置值
#批量设置值r.mset(name1='zhangsan', name2='lisi')#或r.mget({"name1":'zhangsan', "name2":'lisi'})
4. mget(keys, *args) 批量获取
#批量获取print(r.mget("name1","name2"))#或li=["name1","name2"]print(r.mget(li))
5. getset 设置新值,打印原值
#设置新值,打印原值getset(name, value) print(r.getset("name1","wangwu")) #输出:zhangsanprint(r.get("name1")) #输出:wangwu
6. getrange 根据字节获取子序列
#根据字节获取子序列getrange(key, start, end) r.set("name","zhangsan")print(r.getrange("name",0,3))#输出:zhan
7. setrange 修改字符串内容,从指定字符串索引开始向后替换,如果新值太长时,则向后添加
#修改字符串内容,从指定字符串索引开始向后替换,如果新值太长时,则向后添加setrange(name, offset, value) r.set("name","zhangsan")r.setrange("name",1,"z")print(r.get("name")) #输出:zzangsanr.setrange("name",6,"zzzzzzz")print(r.get("name")) #输出:zzangszzzzzzz
8. strlen(name) 返回name对应值的字节长度
#返回name对应值的字节长度(一个汉字3个字节)r.set("name","zhangsan")print(r.strlen("name")) #输出:8
新闻热点
疑难解答