Python 9 Redis

 

Redis介绍

redis是key-value型的存储系统,他本身就是一个大字典,支持多种数据结构,包括String、List、Set、Zset和Hash。其数据都缓存在内存中,但是会定时将数据写入磁盘,可以做持久化。

 

一、redis的特点

1、数据存储在内存中,读取写入速度快

2、支持持久化,定时将数据写入磁盘。

3、支持五种数据类型,但是不支持嵌套。

4、支持事务,要么都执行要么都不执行。

 

二、redis操作和全局操作

连接redis:

1 #方式一:直接连接
2 import redis
3 conn = redis.Redis(host="127.0.0.1", port=6379, password=xxxx)  # 默认是存储字节类型,可以通过decode_response=True把值自动转换成字符
4 
5 
6 #方式二:创建连接池
7 pool = redis.ConnectionPool(host="127.0.0.1", port=6379, password=xxxx, max_connections=100)
8 conn = redis.Redis(connection_pool=pool)

全局操作:

conn.keys()   #取到所有的键
#redis可以使用模糊匹配,*代表任意多个字符, ?代表一个字符, [k,m]代表匹配中括号内的字符

conn.delete("name")   #删除一个键值
conn.flushall()    #删除所有键值
conn.exists("name")    #查看这个键是否存在
conn.rename(old, new)    #重命名一个键
conn.randomkey()    #随机获取一个键

scan_iter(name)    #返回一个迭代器,防止值太多导致系统崩溃

事务:

1 pipe = conn.pipeline(transation=True)
2 pipe.multi()
3 xxxx
4 pipe.execute()

 

1、String操作

1 conn.set(k, v)    #设置单个值
2 conn.get(k)    #获取单个值
3 conn.mset({k1:v1, k2:v2})    #批量设置值
4 conn.mget(k1, k2)    #批量获取值

 

2、List操作

 1 conn.lpush(name, val)    #向列表最左边存放数据
 2 conn.rpush(name,val)     # 向列表最右边存放数据
 3 conn.lpop(name)    #取出最左边的值
 4 conn.rpop(name)    #取出最右边的值
 5 
 6 conn.lrange(name, start, end)    #取出列表一定范围内的值
 7 conn.lindex(name, index)    #取出该索引位置的值
 8 conn.llen(name)     #查看列表长度
 9 
10 #自定义增量迭代
11 #如果想取出列表中的所有值,需要自定义一个函数,一个值一个值取,防止程序崩溃。
12 def  get_list(name)
13     length = conn.llen(name)
14     for index in range(length):
15         yield conn.lindex(name, index)
16 
17 for i in get_list("xxx"):
18     print(i)

 

3、Hash操作

 1 conn.hset(name, key, val)    #设置值
 2 conn.hget(name, key)    #取值
 3 conn.hmset(name, {k1:v1, k2:v2})   #批量设置值
 4 #conn.hmget(name, k1, k2)
 5 conn.hmget(name, [k1, k2])    #批量获取值
 6 conn.hgetall(name)    #获取所有键值
 7 
 8 conn.hlen(name)    #获取键值对个数
 9 conn.hkeys(name)    #获取所有的键
10 conn.hvals(name)    #获取所有的值
11 conn.hexists(name, key)    #检查是否存在对应的键
12 conn.hdel(name, key)     #删除
13 
14 conn.hscan_iter(name)    #批量获取键值
15 #for k,v in conn.hscan_iter(name):
16 #    print(k, v)

 

4、Set操作(集合可以用来去重)

1 conn.sadd(name, val)    #给集合添加元素
2 conn.spop(name)    #从集合右侧取出并删除一个值
3 conn.smembers(name)    #获取name对应集合的所有元素
4 conn.sismember(name, val)    #检验是否是该集合的值
5 
6 conn.sscan_iter()

 

5、Sorted Set(有序集合)

1 conn.zadd(name,k1=1,k2=2)   #添加值和优先级

 

posted @ 2019-05-11 01:13  不可思议的猪  阅读(193)  评论(0编辑  收藏  举报