时间:2021-07-01 10:21:17 帮助过:32人阅读
import redis
# redis string操作k -v
r = redis.Redis(host=‘211.149.218.16‘, port=6379, password=‘123456‘, db=2) # 连接数据库
r.set(‘zfb‘, ‘666666‘) # set数据
print(r.get(‘zfb‘).decode()) # 获取数据,取出的数据都是bytes类型,都要用.decode方法转成字符串
r.delete(‘zfb‘)#删除
r.setex(‘zfb‘,‘hhhh‘,10)#set数据,并设置过期自动清除时间10S,
# redis hash类型操作,没有过期时间
r.hset(‘sessions‘, ‘zfb‘, ‘123456‘) # set数据
print(r.hget(‘sessions‘, ‘zfb‘).decode()) # 获取数据
redis_date = r.hgetall(‘sessions‘)#获取hash类型中所有数据
all_date = {}
for k,v in redis_date.items():#把hash类型里面所有的数据转成字典
k = k.decode()
v = v.decode()
all_date[k] = v
# 有层级的添加k - v
r.set(‘txz:homework:hhh‘, ‘aaa‘)
print(r.keys()) # 获取所有的key数据
print(r.keys(‘txz*‘)) # 获取以txz开头的所有的key数据
print(r.type(‘sessions‘)) # 获取key数据类型
# redis数据迁移
src_redis = redis.Redis(host=‘211.149.218.16‘, port=6379, password=‘123456‘, db=2)
target_redis = redis.Redis(host=‘211.149.218.16‘, port=6379, password=‘123456‘, db=14)
for key in src_redis.keys():
if src_redis.type(key).decode() == ‘string‘: # 判断Key的类型,redis数据获取的都是二进制,需要转换
v = src_redis.get(key)
target_redis.set(key, v)
else:
all_hash_date = src_redis.hgetall(key)
for k, v in all_hash_date.items(): # hash类型获取的为字典,需要循环取值
target_redis.hset(key, k, v) # Key为外面的key,k,v为hash类型的key和value
Python_python数据库操作
标签:ali byte 语句 item password ftime 删除 数据库 aaa