redis操作

一、操作字符串:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import redis
r = redis.Redis(host="iphost",port=6379,password="HK139bc&*",decode_responses=True) #decode_responses为True 就不需要再用decode转了,否则返回的就是字节b'MLing'
#字符串类型
r.set("lcl_session","MLing",500) #添加数据
session = r.get("lcl_session") #查询数据
print(session)
r.delete("lcl_session") #删除数据
print(r.get("lcl_session")) #删除之后,再查询是None
# new_session = session.decode() #decode_responses为True 就不需要再用decode转了
# print(new_session)
  
运行结果:
MLing
None

  

1
expire和expireat的区别:

expire函数设置过期时间为10秒。10秒后,ex1将会失效

expireat设置一个具体的时间,15年9月8日15点19分10秒,过了这个时间,ex2将失效

1
2
3
4
5
6
7
8
9
10
import redis 
import datetime 
import time 
   
pool=redis.ConnectionPool(host='iphost',port=6379,db=0
r = redis.StrictRedis(connection_pool=pool) 
extime = datetime.datetime(2015,9,8,15,19,10
print r.expire('ex1', 10
print extime.strftime('%Y-%m-%d %H:%M:%S %f')   
print r.expireat('ex2', extime)  

 

二、操作哈希

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#哈希类型
import redis
r = redis.Redis(host="iphost",port=6379,password="HK139bc&*",decode_responses=True) #decode_responses为True 就不需要再用decode转了,否则返回的就是字节b'MLing'
r.hset("ssy_student","wanghe","xxx")
r.hset("ssy_student","lj","xxx11")
r.hset("ssy_student","cmc","xxx1122")
r.hset("ssy_student","ccx","xxx11223")
# print(r.hget("ssy_student","cmc").decode())  #decode_responses为True 就不需要再用decode转了
print(r.hget("ssy_student","cmc"))#获取某个字段的值
print(r.hgetall("ssy_student")) #获取ssy_student下的所有数据
r.hdel("ssy_student","ccx") #删除haxi中的某一个字段和它的值<br>r.delete('sys_student')#删除整个大key
print(r.hgetall("ssy_student"))#获取ssy_student下的所有数据
 
运行结果:
xxx1122
{'c': '1111', 'd': '2222', 'ccx': 'xxx11223', 'wanghe': 'xxx', 'e': '3333', 'lj': 'xxx11', 'cmc': 'xxx1122'}
{'c': '1111', 'd': '2222', 'wanghe': 'xxx', 'e': '3333', 'lj': 'xxx11', 'cmc': 'xxx1122'}

 三、常用的方法

print(r.keys()) #所有的key
print(r.keys('*session*'))#模糊匹配
print(r.exists("lcl_session"))#key是否存在
print(r.type("lj_session"))
print(r.type("ssy_student"))
r.expire("ssy_student",50)#指定某个key的过期时间

r.flushall() #清空所有数据库里面的key
r.flushdb() #清空当前数据库里面的所有key
r.hmset(key,{'id':12,'name':78})#一次插入多个小key(hash)

 四、redis迁移

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import redis
r1 = redis.Redis(host="10.24.3.99",port=6379,password="HK139bc&*",decode_responses=True)
r2 = redis.Redis(host="10.24.3.99",port=6379,password="HK139bc&*",decode_responses=True,db=6)
 
 
for k in r1.keys():
    key_type = r1.type(k)
    if key_type == 'string':
        value = r1.get(k)
        r2.set(k,value)
    elif key_type == 'hash':
        value = r1.hgetall(k) #
        r2.hmset(k,value)#
    else:
        pass

  

posted @   MLing  阅读(226)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示