教程集 www.jiaochengji.com
教程集 >  Python编程  >  Python入门  >  正文 Python如何操作redis使用连接池

Python如何操作redis使用连接池

发布时间:2021-12-16   编辑:jiaochengji.com
教程集为您提供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。

<pre class="brush:php;toolbar:false">import redis db = 0 #连接redis,password不简写(否则或报错),db若不写,则默认操作db0 conn_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成功,则返回true conn_redis.set('days', '[10,4,5,12,44]') #set key值到redis内,且可以设置过期时间,10s result = conn_redis.setex('session', 'abcder1233@sdfrr', 10)   #单位是s print(result)   #返回值是布尔类型,set成功,则返回true #批量插入redis,可以写入多个key-valye conn_redis.mset(a='xiaohei', b='xiaobai', c='xiaohuang')  #设置key时,可以设置文件夹,user文件夹,key:test,value:haha conn_redis.set('user:test','haha')</pre>

python 操作redis,使用连接池:

redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。

<pre class="brush:php;toolbar:false">def getcoon():       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')       return res</pre>

相关推荐:《Python视频教程》

redis 使用连接池操作

<pre class="brush:php;toolbar:false">class OPRedis(object):     def __init__(self):         if not hasattr(OPRedis, 'pool'):             OPRedis.getRedisCoon()  #创建redis连接         self.coon = redis.Redis(connection_pool=OPRedis.pool)     @staticmethod     def getRedisCoon():         OPRedis.pool = redis.ConnectionPool(host=redisInfo['host'], password=redisInfo['password'], port=redisInfo['port'], db=redisInfo['db'])     """     string类型 {'key':'value'} redis操作     """     def setredis(self, key, value, time=None):         #非空即真非0即真         if time:             res = self.coon.setex(key, value, time)         else:             res = self.coon.set(key, value)         return res     def getRedis(self, key):         res = self.coon.get(key).decode()         return res     def delRedis(self, key):         res = self.coon.delete(key)         return res     """     hash类型,{'name':{'key':'value'}} redis操作     """     def setHashRedis(self, name, key, value):         res = self.coon.hset(name, key, value)         return res     def getHashRedis(self, name, key=None):         # 判断key是否我为空,不为空,获取指定name内的某个key的value; 为空则获取name对应的所有value         if key:             res = self.coon.hget(name, key)         else:             res = self.coon.hgetall(name)         return res     def delHashRedis(self, name, key=None):         if key:             res = self.coon.hdel(name, key)         else:             res = self.coon.delete(name)         return res</pre>

redisInfo配置

<pre class="brush:php;toolbar:false">redisInfo = {     "host": '192.168.1.112',     "password": '123456',     "port": 6379,     "db": 0 }</pre>

创建test,测试redis连接

<pre class="brush:php;toolbar:false">if __name__ == '__main__':     opr = OPRedis()     res = opr.setredis('two', '哈哈')     res = opr.getRedis('two')     print(res)</pre>

您可能感兴趣的文章:
Python如何操作redis使用连接池
python 如何安装redis
Python3爬虫进阶:Redis存储(非关系型数据库)
PHP Redis相关操作大全
PHP操作Redis数据库常用方法(总结)
三分钟读懂redis数据库
Laravel 5.1框架Redis 的安装配置及基本使用教程
PHP操作Redis数据库常用方法
PHP-redis中文帮助文档
redis安装实例

[关闭]
~ ~