Python操作redis使用连接池的方法
小编给大家分享一下Python操作redis使用连接池的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
redis 连接池
redis是一个key-value存储系统,和memcached类似,支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set-有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集和差集及更丰富的操作,而且这些操作都说原子性的。在此基础上,redis支持各种不同的方式排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
python 操作redis,未使用连接池:
redis-py提供两个Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。
importredisdb=0#连接redis,password不简写(否则或报错),db若不写,则默认操作db0conn_redis=redis.Redis(host='127.0.0.1',port=6379,password='123456',db=db)#给redis添加值,传值方式是key-value,key不可重复,value的形式尽量是string,也可以传list、字典,redis内存放的是字节res=conn_redis.set('name','testredis')#print(res)#返回值是布尔类型,set成功,则返回trueconn_redis.set('days','[10,4,5,12,44]')#setkey值到redis内,且可以设置过期时间,10sresult=conn_redis.setex('session','abcder1233@sdfrr',10)#单位是sprint(result)#返回值是布尔类型,set成功,则返回true#批量插入redis,可以写入多个key-valyeconn_redis.mset(a='xiaohei',b='xiaobai',c='xiaohuang')#设置key时,可以设置文件夹,user文件夹,key:test,value:hahaconn_redis.set('user:test','haha')
python 操作redis,使用连接池:
redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。
defgetcoon():pool=redis.ConnectionPool(host='192.168.1.112',port=6379,password='123456',db=0)coon=redis.Redis(connection_pool=pool)coon.set('key','value')res=coon.get('key')returnres
redis 使用连接池操作
classOPRedis(object):def__init__(self):ifnothasattr(OPRedis,'pool'):OPRedis.getRedisCoon()#创建redis连接self.coon=redis.Redis(connection_pool=OPRedis.pool)@staticmethoddefgetRedisCoon():OPRedis.pool=redis.ConnectionPool(host=redisInfo['host'],password=redisInfo['password'],port=redisInfo['port'],db=redisInfo['db'])"""string类型{'key':'value'}redis操作"""defsetredis(self,key,value,time=None):#非空即真非0即真iftime:res=self.coon.setex(key,value,time)else:res=self.coon.set(key,value)returnresdefgetRedis(self,key):res=self.coon.get(key).decode()returnresdefdelRedis(self,key):res=self.coon.delete(key)returnres"""hash类型,{'name':{'key':'value'}}redis操作"""defsetHashRedis(self,name,key,value):res=self.coon.hset(name,key,value)returnresdefgetHashRedis(self,name,key=None):#判断key是否我为空,不为空,获取指定name内的某个key的value;为空则获取name对应的所有valueifkey:res=self.coon.hget(name,key)else:res=self.coon.hgetall(name)returnresdefdelHashRedis(self,name,key=None):ifkey:res=self.coon.hdel(name,key)else:res=self.coon.delete(name)returnres
redisInfo配置
redisInfo={"host":'192.168.1.112',"password":'123456',"port":6379,"db":0}
创建test,测试redis连接
if__name__=='__main__':opr=OPRedis()res=opr.setredis('two','哈哈')res=opr.getRedis('two')print(res)
以上是Python操作redis使用连接池的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。