# key-value
r.set(‘food‘, ‘mutton‘, ex=3,nx= True) # key是"food" value是"mutton" 将键值对存入redis缓存。
# 过期时间 :ex(秒)px(毫秒),过期后从redis中消失
# nx - 如果设置为True,则只有name不存在时。
r.get(‘food‘) # 从redis中获取keyr.setnx(name, value) # name不存在的时候执行
# hash
r.hset("hash1", "k1", "v1")
r.hset("hash1", "k2", "v2")
r.hkeys("hash1") # 取hash1中所有的key
r.hgetall(‘user‘) # 从redis中获取key的map值
r.hget("hash1", "k1") # 单个取hash1的key对应的值
r.hmset(‘user‘,{"user_id": user_id, "username": username}) # 设置hash map
r.hmget("hash1", "k1", "k2") # 多个取hash的key对应的值
r.hmget("hash2", ["k2", "k3"]) # 批量取出"hash2"的key-k2 k3对应的value --方式
r.hsetnx("hash1", "k2", "v3") # 当name对应的hash中不存在当前key时则创建(相当于添加)
r.mset(k1="v1", k2="v2") # 这里k1 和k2 不能带引号 一次设置多个键值对
r.mget(‘k1‘, ‘k2‘) # 将目前redis缓存中的键对应的值批量取出来
r.mget([‘k1‘, ‘k2‘])
r.mget("fruit", "fruit1", "fruit2", "k1", "k2")
r.exists(‘food‘) # 检查是否存在key
r.expire(‘food‘, 2*60*60) # 设置key的过期时间,单位是秒。
# 追加
r.append("name", "haha") # 在name对应的值junxi后面追加字符串haha
案例:
迁移redis
r = redis.Redis(host="118.24.3.XX",
password="HK139bXXX",
port=6379,db=0,
decode_responses=True)#0-15
r2 = redis.Redis(host="118.24.3.XX",
password="HK139bcXX",
port=6379,db=2,
decode_responses=True)#0-15
#1、获取所有的key
#2、判断key的类型
#3、根据key的类型来使用set或者hset
for key in r.keys():
if r.type(key) == "string":
value = r.get(key)
r2.set(key,value)
elif r.type(key) == "hash":
hash_all = r.hgetall(key)
for k,v in hash_all.items(): #循环hash类型里面所有的k-v
r2.hset(key,k,v)
原文:https://www.cnblogs.com/zhangmeiyan/p/14372730.html