ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

10.Redis高级使用以及和python互动

2022-04-16 19:00:06  阅读:182  来源: 互联网

标签:10 redis python list1 Redis zset1 hash1 set1 print


和python进行互动

安装redis库

pip3 install redis

连接数据库

import redis

# StrictRedis和Redis效果一样,后者是前者的子集
r = redis.StrictRedis(host='localhost',port=6379,db=0)
r.set("key1","value111")
print(r.get("key1").decode("utf-8"))

设置过期时间

r.set("key2","value211",px=5000)  # 单位为毫秒
r.setex("haha1",10,"nihao123")  # 单位为秒

使用连接池去链接(Redis集群)

pool = redis.ConnectionPool(host='localhost',port=6379,decode_responses=True)
r = redis.Redis(connection_pool=pool)
r.set("key2","value211",px=5000)
print(r.get("key2"))

mset功能

r.mset({'haha1':'value1','haha2':'value2','haha3':'value3'})
print(r.mget("haha1","haha3"))   # 获取的就是一个list

hash功能

r.hset("hash1","k1","value1")
r.hset("hash1","k2","value2222")
print(r.hkeys("hash1"))   # ['k1','k2'],hash1相当于特殊的键
print(r.hget("hash1","k2"))   # hash1中k2键的值
print(r.hmget("hash1", "k2","k1"))  # 获取hash1中k2,k1的全部内容,list保存,可以遍历提取

# 批量hash操作,但快要被hset取代
r.hmset("hash2",{"n1":"nnn1","n2":"nnn2"})
print(r.hgetall("hash2"))
print(r.hexists("hash1","k1"))

自增自减

# 整数
r.hincrby("hash2","n3",amount=-11)
# 浮点数
r.hincrbyfloat("hash2","n3",amount=+11.12)

list

r.rpush("list1",1,2,3,4,5,6,7)
# list长度
print(r.llen("list1"))

# 取0-3号元素,返回list
print(r.lrange("list1",0,3))

# 插入元素到底部
r.rpush("list1",10)

# 在3的前面添加一个99
r.linsert("list1","before",3,99)

# 将5号元素的值修改为-300
r.lset("list1",4,-300)

# 删除列表左边出现的第一个8
r.lrem("list1",1,"8")

# 删除列表右边出现的第一个8
r.lrem("list1",-1,"8")

# 删除列表最左边的元素
r.lpop("list1")

# 只保留0-2号元素
r.ltrim("list1",0,2)

# 索引为1的值
print(r.lindex("list1",1))

set

# 添加set数据
r.sadd("set1",11,22,33,44,55)

# set1里有多少数据
print(r.scard("set1"))

# 打印set1的数据(无序)
print(r.smembers("set1"))

# 按照保存在数据库中的顺序,使用迭代器获取元素(迭代器减少内存损耗)
for i in r.sscan_iter("set1"):
	print(i)

# 取交集
r.sinter("set1","set3")

# 取并集
r.sunion("set1","set3")

# 取差集
r.sinter("set1","set3")

# 随机删除一个元素
r.spop("set1")

# 指定删除某个元素
r.srem("set1",33)

zset

# 添加zset
r.zadd("zset1",mapping={'m1':2,'m2':9,'m3':7,'m4':1})

# 查看几个元素
print(r.zcard("zset1"))

# 查看全部元素,按照从小到大权重从左到右排序
print(r.zrange("zset1",0,-1))

# zrange反向排序
print(r.zrevrange("zset1",0,-1))

# 权重自增自减
r.zincrby("zset1",value="m3",amount=2)
r.zincrby('zset1',2,'m3')

# 删除值
r.zrem("zset1","m2")

# 查看值的权重
print(r.zscore("zset1","m3"))

常用命令

# 任意类型数据键删除(图形化鼠标右键删除)
r.delete("zset1")

# 判断数据是否存在
print(r.exists("zset1"))

# 重命名数据
r.rename("set1","set10")

# 获得键的数据类型
print(r.type("set2"))

标签:10,redis,python,list1,Redis,zset1,hash1,set1,print
来源: https://www.cnblogs.com/icui4cu/p/16153871.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有