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.

importredis

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实例共享一个连接池。

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')return res

redis 使用连接池操作

classOPRedis(object):def __init__(self):if not hasattr(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操作"""

def setredis(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)returnresdef getHashRedis(self, name, key=None):#判断key是否我为空,不为空,获取指定name内的某个key的value; 为空则获取name对应的所有value

ifkey:

res=self.coon.hget(name, key)else:

res=self.coon.hgetall(name)returnresdef delHashRedis(self, name, key=None):ifkey:

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)

参考链接:https://www.cnblogs.com/xiaoming279/p/6293583.html

python redis连接池_redis 连接池相关推荐

  1. python redis 集群_python 连接redis集群 ,常见报错解决。

    背景:工作需要,处理的数据需要通过redis进行缓存处理,之后方便统计分析. 目标:python连接redis进行读取&写入. 连接 redis 与 redis集群 是不同的 !!! 一.连接 ...

  2. redis java连接出错_redis连接错误与spring boot

    我使用spring boot框架来连接redis,我得到了错误 Caused by: java.lang.NoSuchMethodError: redis.clients.jedis.JedisSha ...

  3. python redis pipeline 堆积_Redis Pipeline python

    问题 简介: 以下代码来自 redis实战 一书中某个小节; 代码是python实现,其中如果pipeline()不加任何参数,或者是pipeline(True)的形式,那么客户端将使用MULTI E ...

  4. python redis 性能测试台_Redis性能测试

    Redis 性能测试 Redis 性能测试是通过同时执行多个命令实现的.Redis性能测试主要是通过src文件夹下的redis-benchmark来实现(Linux系统下) 语法 redis 性能测试 ...

  5. python redis连接池获取后关闭_python通过连接池连接redis,操作redis队列

    在每次使用redis都进行连接的话会拉低redis的效率,都知道redis是基于内存的数据库,效率贼高,所以每次进行连接比真正使用消耗的资源和时间还多.所以为了节省资源,减少多次连接损耗,连接池的作用 ...

  6. java长连接转短连接_java原生程序redis连接(连接池/长连接和短连接)选择问题...

    原标题:java原生程序redis连接(连接池/长连接和短连接)选择问题 最近遇到的连接问题我准备从重构的几个程序(redis和mysql)长连接和短连接,以及连接池和单连接等问题用几篇博客来总结下. ...

  7. php redis 集群 长连接池,php如何实现redis连接池

    项目使用的是php,生产环境使用的是redis集群,连接的地址是配置的域名,每次创建连接必须要经过一次域名解析,频繁的创建链接效率低下且经常出现超时的情况,有没有在生产环境实现redis链接池的,分享 ...

  8. Redis Lettuce客户端异步连接池详解

    前言 异步/非阻塞编程模型需要非阻塞API才能获得Redis连接.阻塞的连接池很容易导致阻塞事件循环并阻止您的应用程序进行处理的状态.Lettuce带有异步,非阻塞池实现,可与Lettuces异步连接 ...

  9. python redis连接_Redis学习---Redis操作之Python连接

    PyCharm下的Redis连接 连接方式: 1. 操作模式 redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使 ...

最新文章

  1. autoware使用rosbag数据生成路径点并进行路径规划(七)
  2. Opencv进行人脸检测(改进)
  3. spring与springBoot不同之处
  4. 前端JS——滑动滑块验证登录(源码及效果)
  5. 信息学奥赛一本通(1053:最大数输出)
  6. 发布文章自动上传图片并生成水印
  7. Windows开发签名工具(SignTool)下载
  8. unity 运行时间问题
  9. 微服务框架自带uuid生成器
  10. js实现中文简体繁体转换
  11. 小甲鱼零基础入门python教程视频_小银 - 神奇宝贝百科,关于宝可梦的百科全书...
  12. 数据仓库和数据集市详解:ODS、DW、DWD、DWM、DWS、ADS
  13. 记账软件分享,教你如何记账并管理所有账目
  14. APP STORE又崩了?可以通过DNS解决!
  15. JPA 查询 未查询到时返回的list的size为0 但是引用并不为空
  16. 提高Lua代码运行效率
  17. 3DMAX换贴图插件
  18. JQuery选择器语法
  19. 苹果系统 如何快速访问服务器,4如何在iPhone / Windows / Mac上快速访问iCloud照片
  20. 重磅《中华人民共和国数据安全法》最全图解附全文

热门文章

  1. CF 1138F 超级有意思的一道交互题QVQ
  2. 三维空间坐标的旋转算法详解_矩阵描述三维空间旋转
  3. 使用Fiori BarcodeScannerButton在浏览器上扫描二维码和条形码
  4. web期末作业设计网页_传统文化设计题材_手工艺木雕
  5. web课程设计,网页制作,守望先锋主题
  6. SNMP Informant How-To
  7. 深度有趣 | 08 DCGAN人脸图片生成
  8. 计算机编程类视频学习参考网站
  9. use cpu capability none!
  10. 公众号内容拓展学习笔记(2021.5.5)