文章目录
redis
1.简介
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步
支持的数据类型:
string 字符串
list 列表
set 集合
hash 哈希
zset 有序集合
redis={
k1:'123', 字符串
k2:[1,2,3,4], 列表/数组
k3:{
1,2,3,4} 集合
k4:{
name:lqz,age:12} 字典/哈希表
k5:{
('lqz',18),('egon',33)} 有序集合
}
redis最适合的场景
做缓存
session数据
游戏排行榜
对速度要求比较高的数据的存储
做消息队列
比较redis和Memcached
redis 支持5大数据类型
redis支持持久化
单线程,单进程,速度是非常快
Memcached不能持久化,只支持字符串
2.python操作redis
import redis
# 拿到redis的连接
conn = redis.Redis(host='192.168.32.100',port=6379,password='redis')
conn.set('age','18')
age = conn.get('age')
# redis中存的都是byte格式
print(age)
3.python操作redis连接池
# 首先新建一个模块
import redis
POOL = redis.ConnectionPool(host='192.168.32.100',port=6379,password='redis',max_connections=1000)
# 使用连接池
from conn_pool import POOL
# 每次执行这句话,从池子中取一个链接
conn = redis.Redis(connection_pool=POOL)
print(conn.get('name'))
4.redis字符串操作
set(name,value,ex=None,px=None,nx=False,xx=False)
conn = redis.Redis(host='192.168.32.100',port=6379,password='redis')
# nx,如果设置为True,则只有name不存在时,当前set操作才执行,值存在,就修改不了,执行没效果
conn