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