mongodb和redis结合,用id做为redis的key,key过长的问题

查看:91
本文介绍了mongodb和redis结合,用id做为redis的key,key过长的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

目前使用mongodb和redis结合。redis的key,使用mongodb自动生成的id,比如这个

ObjectId("5942221b18506251977e0d97")

一个是24字节。

现在有些场景是必须两个id构成一个redis的key。加起来。两个就是48个字节。再加上一些命名空间。一个key就是55字节左右。

比如

list:5942221b18506251977e0d97:593ae709dd809044f7284459

这么长,对性能影响多大?有没有必要优化?

之所以使用两个key,是方便删除的问题。比如 一个文章分类删除了,我可以把所有分类下面的key都清除掉。
比如

DEL list:5942221b18506251977e0d97:*

否则你不清除,这些key会一直遗留,占空间。


或许我可以设置过期时间,让redis自己删除过期的key

解决方案

很长的key当然会改变redis构建的数据对象的底层实现方式,会影响redis查询数据的速度,另外很长的key导致的底层结构的改变也会使存储单元数据的空间变大的,如果存储的数据很多,消耗大量的内存,也是很不利的,应该考虑将子分类单独构建成一个数据对象,键可以设置成分类相关联的,这样删除一个分类的时候,顺便把对应子分类的名字也给删除了,有一本书是redis的设计与实现,可以看一下

这篇关于mongodb和redis结合,用id做为redis的key,key过长的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆