python dict key expire_Python 中字典经过 redis 后添加修改都会出现问题

我手头有个复杂的字典,需要保存在 redis 中,例如:

appinfo = {

'a': {'172.25.53.12': {'olversion': u'111', 'rb1': u'222', 'rb2': u'333'}},

'c': {'172.25.53.14': {'olversion': u'111', 'rb1': u'222', 'rb2': u'333'}},

'b': {'172.25.53.11': {'olversion': u'111', 'rb1': u'222', 'rb2': u'333'}},

'd': {'172.25.53.13': {'olversion': u'111', 'rb1': u'222', 'rb2': u'333'}}}

保存方法如下:

class operate_redis:

def __init__(self):

self.r=redis.Redis(host='localhost', port=6379, db=0)

def write2redis(self, key, **kwargs):

self.r.set(key, pickle.dumps(kwargs))

def read_from_redis(self, key):

pickled_value = self.r.get(key)

if pickled_value is None:

return None

return pickle.loads(pickled_value)

def del_from_redis(self, key):

return self.r.delete(key)

def set_app_expire(self, key):

self.r.expire(key, 36000)

问题出现在我每次通过 read_from_redis 读取后,想在 key 为 a 的添加个参数

appinfo['a']['172.25.53.12']['work'] = 'gofuckyourself'

这个操作后, key 为'b', 'c', 'd'的同样会增加上面那个 key value

同理 修改 appinfo['a']['172.25.53.12']这个里面的参数 b c d 也会一样被修改

如果不经过 redis 存储 读取这个流程 单纯定义 appinfo 这个字典,上述修改只只对单个 key 生效。

请问这个情况有大大们碰到过么? 改如果处理呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值