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。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')
python 操作redis,使用连接池:
redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。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
redis 使用连接池操作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
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集群是连接池么_Python如何操作redis使用连接池相关推荐
- redis 集群搭建_一文轻松搞懂redis集群原理及搭建与使用
转载:https://juejin.im/post/5ad54d76f265da23970759d3 作者:SnailClimb 这里总结一下redis集群的搭建以便日后所需同时也希望能对你有所帮助. ...
- Redis 集群搭建(三):Docker 部署 Redis + Sentinel 高可用集群
Redis 集群搭建(三):Docker 部署 Redis + Sentinel 高可用集群 前言 建议 官方译文 什么是 Sentinel? Sentinel 优点 Redis 配置文件 maste ...
- redis集群报Jedis does not support password protected Redis Cluster configurations异常解决办法...
解决spring-data-redis操作redis集群报"Jedis does not support password protected Redis Cluster configura ...
- Redis集群方案对比:Codis、Twemproxy、Redis Cluster
为了保证Redis的高可用,主要需要以下几个方面: 数据持久化 主从复制 自动故障恢复 集群化 我们简单理一下这几个方案的特点,以及它们之间的联系. 数据持久化本质上是为了做数据备份,有了数据持久化, ...
- redis集群扩容和缩容_深入理解Redis Cluster集群
一.背景 前面的文章<深入理解Redis哨兵机制>一文中介绍了Redis哨兵集群的工作原理,哨兵集群虽然满足了高可用的特性,但是依然存在这样的问题:即数据只能往一个主节点上进行写入. 只能 ...
- python操作redis集群_python 连接管理作redis集群
python的redis库是不支持集群操作的,推荐库:redis-py-cluster. 安装 pip3 install redis-py-cluster 连接redis集群 #!/usr/bin/e ...
- python 操作redis集群
python 操作redis集群 一.连接redis集群 python的redis库是不支持集群操作的,推荐库:redis-py-cluster,一直在维护.还有一个rediscluster库,看Gi ...
- Python 检测系统时间,k8s版本,redis集群,etcd,mysql,ceph,kafka
一.概述 线上有一套k8s集群,部署了很多应用.现在需要对一些基础服务做一些常规检测,比如: 系统时间,要求:k8s的每一个节点的时间,差值上下不超过2秒 k8s版本,要求:k8s的每一个节点的版本必 ...
- springboot连接阿里云redis集群内网会连内网地址
springboot配置了redis集群(阿里云的),然后也可以运行,就是第一次连接会特别慢,检查发现控制台warn ,连接不上 ip:端口 , 发现ip是内网地址,端口是集群的端口. (我是一个服务 ...
- Redis(持久化、主从复制、主从切换、twemproxy、redis集群)
文章目录 Redis Redis应用场景 下载及安装 Redis常用指令 Redis持久化 Redis主从复制 Redis的Sentinel分布式系统(主从切换) sentnel(Redis的高可用方 ...
最新文章
- Hadoop集群搭建(二:集群主机间免密登录配置)
- lstm结构图_神经网络——单层LSTM
- 测试回收站测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站
- HTML+CSS+JS实现 ❤️ 团队人物图片蜂巢布局❤️
- Android AsyncTask源码解析
- 跟我一起学习ASP.NET 4.5 MVC4.0(四)(转)
- CGLib动态代理详解
- JavaScript 基础概念
- c语言开发宏程序,一文搞懂宏程序的编程基础,快速入门秘笈
- 高德地图自定义定位当前位置按钮
- 大数据时代的教育宏观治理体制现代化变革
- android 屏幕分辨率获取,Android获取屏幕分辨率的三种方法
- 《谷歌大数据经典论文读后感》
- 国内五大抗DDoS服务
- 重装系统找不到固态_SSD固态硬盘才装上确找不到盘怎么办 --好文
- [拿来就用不经意识流] 谷歌多汁小萝莉的使用问题
- flex中dataGrid的编辑功能 精华
- 哈佛凌晨4点半的景象
- Intel.VTune.Performance.Analyzer.v8.0.014 分析软件
- 再保险系统涉及的概念
热门文章
- pta构造回文数C语言,【LeetCode】 #9:回文数 C语言
- linux dm9000网卡 原理图怎么看,LINUX移植——DM9000网卡移植
- VS2017安装打包插件
- AI语音技术的架构(学习心得)
- 西门子TIA PORTAL (博途/STEP 7 )安装反复要求重新启动 STEP7 Basic的许可无法彻底完成
- 360浏览器下载|360安全浏览器下载
- linux 3g拨号,中兴MF637U 3G 联通 linux 拨号
- 干扰管理学习日志4-------信道估计方法 LS(最小二乘)、MMSE(最小均方误差)
- 分库分表中间件的高可用实践讲解
- 如何使用STVP烧录程序