redis设计问题

1、键名 t_1minx年月日时分 例如t_1min*2019-5-22 16:05
使用hash value=>数据值
会产生很多hash值

2、键名 t_1min
使用sorted-set 分数就是时间戳=>数据值
只会产生一个有序列表

同一场景下
比如 或者今日每一分钟的数据
哪一个数据会更快 设计更优

两个方案我用ab测试了下 没有明显的区别

阅读 1.6k
2 个回答

两种模型,没太大区别,感觉区别还是业务上的操作有什么吧。
另外,用sorted,要注意不要让列表太大,不然某些操作可是O(n)了,Hash也是的。

对于redis key的命名规范很重要,只要抓住两点就可以:

  • 一是尽量不要包含特殊字符

我们可能会使用特殊字符做业务上的分割,很可能引入难以排查的bug;

  • 二是非敏感数据不提倡使用hash

尽量从业务层次规避重复问题。

从你说的效率方面来说两者没有太大差别,如果没有其他需求建议使用第二种方案。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题