博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
21、python操作redis的模块?
阅读量:6232 次
发布时间:2019-06-21

本文共 1126 字,大约阅读时间需要 3 分钟。

什么是redis?

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

上面的话好像很专业的样子,这里我们简单的理解为,其实redis就是一个消息中间件,可以作为多个进程的消息中转站,是比之前我们用的manage模块更方便自由的共享内存。

1、基本操作

之前我们已经知道,redis是以key-value的形式存储的,所以我们在操作的时候。首先我们将redis所在主机的ip和发布端口作为参数实例化了一个对象r,然后执行set('name','Eva_J'),这样我们就在内存中存储了一个key为name,值为‘Eva_J’的项。我们可以理解为{'name':'Eva_J'},当我们要读取的之后,只需要get('name'),就会得到'Eva_J'的值。

2、连接池

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

 

3、管道

 redis-py默认在执行每次请求都会创建(连接池申请连接)和断开(归还连接池)一次连接操作,如果想要在一次请求中指定多个命令,则可以使用pipline实现一次请求指定多个命令,并且默认情况下一次pipline 是原子性操作。 

4、发布订阅

发布者:服务器

订阅者:Dashboad和数据处理

Demo如下:

定义一个redishelper类,建立与redis连接,定义频道为fm92.4,定义发布public及订阅subscribe方法。

 

订阅者:导入刚刚我们写好的类,实例化对象,调用订阅方法,就可以使用while True接收信息了。

发布者:导入刚刚我们写好的类,实例化对象,调用发布方法,下例发布了一条消息‘hello’

 

 

转载于:https://www.cnblogs.com/zhuifeng-mayi/p/9296692.html

你可能感兴趣的文章
【图片】批量获取几万张图片
查看>>
Spring经常使用属性的注入及属性编辑器
查看>>
FreeRTOS系列第13篇---FreeRTOS内核控制
查看>>
python入门小记
查看>>
将逻辑卷降为物理分区
查看>>
CMake 入门实战【转】
查看>>
软硬件之共生之道——一千零一夜的启发
查看>>
redis 性能建议
查看>>
Android MaoZhuaWeiBo开发Service抓取个人信息-2
查看>>
Codefoces 436 B. Om Nom and Spiders
查看>>
流程控制------if else分支语句
查看>>
禁用Clusterware在系统启动后自己主动启动
查看>>
Storm编程入门API系列之Storm的Topology默认Workers、默认executors和默认tasks数目
查看>>
Json转java对象和List集合
查看>>
PHP操作MongoDB数据库具体样例介绍(增、删、改、查) (六)
查看>>
关于Unity中的模型描边与Shader切换(专题二)
查看>>
《淘宝技术这十年》读后感
查看>>
程序员经常加班的真正原因
查看>>
windows系统下如何正确安装Cygwin(图文详解)
查看>>
SpringBoot接口服务处理Whitelabel Error Page
查看>>