Python函数-操作redis

redis也是一个数据库,数据都存在内存里面。
先引入第三方模块,执行以下命令:pip install redis
redis只有密码

1、操作redis

import redis

# redis也是一个数据库,数据都存在内存里面
r = redis.Redis(host='118.24.3.40', port=6379, password='HK139bc&*', decode_responses=True)  # db=15,指定数据库15,默认是db0
# decode_responses = True将bytes转成字符串
# Redis查出来的结果,默认是bytes类型的

# 字符串类型
r.set('ccx_session', 'dazhouzi', 10)  # 插入一条数据,key,value,有效时长:默认为永久,单位为秒
print(r.get('ccx_session'))  # 获取指定的值
print(r.set('ccx_session', 'dazhouzi'))  # 修改成dazhouzi
print(r.get('ccx_session'))  # 修改完再看看
# r.delete()  #删除
# decode讲解
session = r.get("ccx_session")
print(session)
new_session = session.decode()  # decode手动将获取的值转换为字符串
print(new_session)

# 哈希类型
r.hset('ssz_stu', 'cmc0', '666')  # 插入数据
r.hset('ssz_stu', 'cmc1', '666')
r.hset('ssz_stu', 'cmc2', '666')
r.hset('ssz_stu', 'cmc3', '666')
# print(r.hget('ssz_stu','cmc2').decode())
print(r.hget('ssz_stu', 'cmc2'))  # 获取数据
print(r.get('ccx_session'))
r.hdel('ssz_stu', 'cmc3')  # 删除
print(r.hgetall('ssz_stu'))

print(r.keys())  # 所有的key
print(r.keys('*session*'))  # 模糊匹配
print(r.exists('ccx_session'))  # key是否存在
print(r.type('ccx_session'))  # 类型
r.expire('ccx_session', 10)  # 指定某个key过期的时间

r.flushall()  # 清空所有数据库里面的key
r.flushdb()  # 清空当前数据库里面的所有key

d = {"a": 1, "b": 2, "c": 3}
r.hmset("ssy_student", d)  # 插入字典
r.delete("ssy_student")  # 删除

# 有冒号有文件夹
r.set("grils:sxy", "1")
r.set("grils:lj", "1")
r.set("boys:cmc", "1")
r.set("boys:wh", "1")

2、迁移redis

import redis
#将一个数据库中的所有数据迁移到另一个数据库中
r1 = redis.Redis(host="118.24.3.40", port=6379, password="HK139bc&*", decode_responses=True)
r2 = redis.Redis(host="118.24.3.40", port=6379, password="HK139bc&*", decode_responses=True, db=6)

for k in r1.keys():  #遍历数据库中所有的key
    key_type = r1.type(k)
    if key_type == 'string':  #判断是字符串的
        value = r1.get(k)
        r2.set(k, value)
    elif key_type == 'hash':   #判断是hash类型的
        value = r1.hgetall(k)
        r2.hmset(k, value)
    else:
        pass
原文地址:https://www.cnblogs.com/ccxm/p/13532642.html