今天咱们来学习如何使用Python操做Redis缓存数据库,首先咱们须要使用到一个redis库,使用以前先安装一下,依旧是使用pip进行安装:html
pip install redis
安装好了redis库以后,咱们只需使用import redis
导入便可使用了,是否是很方便呀,以前的文章里也用到不少库,大部分都是经过这两个步骤使用的; 接下来咱们开始讲解如何操做Redis数据库,介绍一下Redis的五大数据类型:分别是字符串类型string
、列表类型list
、集合类型set
、哈希类型hash
、有序集合类型 sorted set
redis
###开启数据库数据库
要注意咱们操做以前须要先开启Redis数据库,咱们上一篇文章《Redis的使用》里面有告诉咱们如何安装Redis数据库,那咱们如今先打开一个 命令窗口,使用 cd 命令切换目录到 redis 所在的目录运行windows
redis-server.exe redis.windows.conf
这时候另启一个命令窗口,原来的不要关闭,否则就没法访问服务端了,咱们先试一下可不可使用缓存
# 设置键值对: set Angle 20 # 取出键值对: get Angle # 设置键值对: set class a # 取出键值对: get class
咱们先经过例子看一下如何使用string类型数据学习
import redis # 链接数据库 client = redis.StrictRedis(host='localhost', port=6379, db=0) ##### 单个string result = client.set('Mark', 100) print(result) # 输出:True age = client.get('Mark') print(age.decode()) # 输出:100 ##### 多个string student = { 'name': 'zeng', 'age': '22' } result1 = client.mset(student) print(result1) # True stu = client.mget(['name', 'age']) print(stu) # 输出:[b'zeng', b'22'] ##### 删除操做 d = client.delete('name', 'age') print(d) # 2 result = client.get('name') print(result) # None
上面的例子中分别对单个string、多个string进行了举例,其中涉及到赋值和取值的方法,咱们来看一下具体的介绍:大数据
set()方法
:单个string操做方法,用于设置给定 key 的值。若是 key 已经存储其余值, SET 就覆写旧值,且无视类型;code
get()方法
:单个string操做,用于获取指定 key 的值,若是key不存在,返回nil,若是key储存的值不是字符串类型,返回一个错误;server
decode()方法
:这个你们应该都知道,用于解码;htm
mset()
:多个string操做,用于同时设置一个或多个key-value对;
mget()
:多个string操做,返回全部给定key的值;
delete()
:删除数据,能够根据key来指定删除数据;
import redis client = redis.StrictRedis(host='localhost', port=6379, db=0)
lpush()方法
:令将一个或多个值插入到列表头部,若是 key 不存在,一个空列表会被建立并执行 LPUSH 操做,当 key存在但不是列表类型时,返回一个错误; 注意:在Redis 2.4版本之前的 LPUSH 命令,都只接受单个 value 值;# 插入一个元素 result = client.lpush('lsts', 'name') print(result) # 建立列表 lsts = ('name', 'age', 'class', 'score') # 插入多个元素 result = client.lpush('lsts', *lsts) print(result) # 4
lrange()方法
:返回列表中指定区间内的元素,区间以偏移量START和END指定,其中0表示列表的第一个元素,1表示列表的第二个元素,以此类推,以-1表示列表的最后一个元素, -2表示列表的倒数第二个元素,以此类推;# 先加入进入的元素在后面,后加入的元素在前面 result = client.lrange('lsts', 0, -1) print(result) # [b'score', b'class', b'age', b'name']
lpop()方法
:用于移除并返回列表的第一个元素;# 从左边删除一个元素 result = client.lpop('lsts') print(result) # b'score'
###3、集合类型set
import redis client = redis.StrictRedis(host='localhost', port=6379, db=0)
sadd()
:将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略;sets = ('name', 'age', 'class', 'score') result = client.sadd('new_sets', *sets) print(result) # 4
smembers()
:判断成员元素是不是集合的成员;result = client.smembers('new_sets') print(result)
srem()
:用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略;result = client.srem('new_sets', 'address') print(result) # 1
###4、哈希类型hash
import redis client = redis.StrictRedis(host='localhost', port=6379, db=0)
client.hset("hash1", "k1", "v1") client.hset("hash1", "k2", "v2")
hkeys()
:用于获取哈希表中的全部域(field);print(client.hkeys("hash1")) # [b'k1', b'k2']
hget()
:用于返回哈希表中指定字段的值;print(client.hget("hash1", "k1")) # b'v1'
hmget()
:用于返回哈希表中,一个或多个给定字段的值;print(client.hmget("hash1", "k1", "k2")) # [b'v1', b'v2']
###5、有序集合类型 sorted set
import redis client = redis.StrictRedis(host='localhost', port=6379, db=0)
zadd(name, *args, **kwargs)
:在name对应的有序集合中添加元素;d = {'Join': '20'} result = client.zadd("zset1", d) print(result) # 1
zcard(name)
:获取name对应的有序集合元素的数量;result = client.zcard("zset1") print(result)
zcount(name, min, max)
:获取name对应的有序集合中分数 在 [min,max] 之间的个数;client.zcount("zset1", 0, 1)
zincrby(name, value, amount)
:自增name对应的有序集合的 name 对应的分数;print(client.zincrby("zset1", 1, '20'))
以上就是Redis的五大数据类型的基本用法的一些小实例,若是你们不懂的记得动手去尝试哟,特别是每种类型的方法都有不少,你们能够自行查看API~ 官网地址:https://redis-py.readthedocs.io/en/latest/