当前位置 : 主页 > 编程语言 > python >

一 python+redis使用

来源:互联网 收集:自由互联 发布时间:2021-06-25
一 .redis+python 1.redis https://www.cnblogs.com/zhaohuhu/p/9140673.html#_label0_0 Redis是一个开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,如 字符串,散列,列

一  .redis+python

1.redis

https://www.cnblogs.com/zhaohuhu/p/9140673.html#_label0_0

Redis是一个开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理。
它支持数据结构,如 字符串,散列,列表,集合,带有范围查询的排序集,位图,超级日志和带有半径查询的地理空间索引。
Redis具有内置复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel提供高可用性和Redis 
Cluster自动分区。

用于操作内存的软件
可以做持久化
AOF
RDB
-相当于一个大字典
单进程单线程

redis常见性能问题和解决方案:


(1) Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件 (2) 如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次 (3) 为了主从复制的速度和连接的稳定性,Master和Slave最好在同一个局域网内 (4) 尽量避免在压力很大的主库上增加从库 (5) 主从复制不要用图状结构,用单向链表结构更为稳定,即:Master <- Slave1 <- Slave2 <- Slave3... 这样的结构方便解决单点故障问题,实现Slave对Master的替换。如果Master挂了,可以立刻启用Slave1做Master,其他不变。

 2. resis+python

1. 连接池

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

使用连接池
本质 维护一个已经和服务器连接成功了的socket
以后再发送数据时 直接获取一个sockect 直接send数据
import redis pool = redis.ConnectionPool(host=192.168.18.11, port=6379) r = redis.Redis(connection_pool=pool) r.set(foo, Bar) print (r.get(foo)) #是一个字节 b‘Bar‘
网友评论