【Python】学习笔记5-操作redis数据库redis

import redis
# 1、set get setex delete都是针对值是字符串类型进行操作
r = redis.Redis(host='x.x.x.x',port = 6379,password = '123456',db = 1)
# r.set('am_session','20122222222') #set数据,增加一条数据
# print(r.get('am_session').decode()) #get数据,redis取出的数据都是bytes类型的,所以要用decode方法转化成字符串
# # r.delete('cm_session')
# r.setex('am_ssss','chenmeng',10) #新建一条数据,可以指定key的失效时间,单位是秒

#
# # 2、hash类型set、get数据的方式:一个session,类似字典,不同key对应不同的值
1 # r.hset('cmsessions','cm','1')
2 # r.hset('cmsessions','cm1','12')
3 # r.hset('cmsessions','cm2','123')
4 # # print(r.hget('cmsessions','cm2').decode()) #获取hash类型某个key的数据
5 # # redis_data = r.hgetall('cmsessions') # 获取hash类型的所有数据,返回字典,但是里面都是二进制:{b'cm': b'1', b'cm2': b'123', b'cm1': b'12'}
6 # #

# # #解析hash类型中的二进制数据,都换成正常字符串
x
1 # r.hset('cmsessions','cm','1')
2 # r.hset('cmsessions','cm1','12')
3 # r.hset('cmsessions','cm2','123')
4 # # print(r.hget('cmsessions','cm2').decode()) #获取hash类型某个key的数据
5 # # redis_data = r.hgetall('cmsessions') # 获取hash类型的所有数据,返回字典,但是里面都是二进制:{b'cm': b'1', b'cm2': b'123', b'cm1': b'12'}
6 # #
#
# #hash类型没有过期时间
#
#
# # 3.如果需要在文件夹中添加session,带冒号,多个层级的文件夹多个冒号即可
# r.set('cm:am_session','20122222222')
#
#
# # 4.获取所有的key
# print(r.keys()) #获取所有的key
# print(r.keys('cm*')) #获取所有以cm开头的key
# print(r.type('cmsessions')) #获取所有kye的类型,hash类型是:b'hash',普通返回类型是b'string'

#5.db2中所有的key迁移到db8
#a 建立两个redis链接
#b 获取所有的key,返回b开头的byte类型,所有判断类型的时候,b'string'
#c 判断key的类型,string hash
 1 # src_redis = redis.Redis(host='X.x.x.x',port = 6379,password = '123456',db = 4)
 2 # target_redis = redis.Redis(host='X.x.x.x',port = 6379,password = '123456',db = 3)
 3 # for key in src_redis.keys(): #[b'session3', b'wy:wy1:wy2', b'session_wy', b'wangyan']
 4 #     if src_redis.type(key) == b'string':
 5 #         v = src_redis.get(key)
 6 #         target_redis.set(key,v)
 7 #     else: #hash类型处理
 8 #         all_hash_data = src_redis.hgetall()
 9 #         for k,v in all_hash_data.item():
10 #             target_redis.hset(key,k,v)
原文地址:https://www.cnblogs.com/amengmeng/p/8361374.html