当前位置:  开发笔记 > 后端 > 正文

Redis中列表和集合处理的最佳实践是什么?

如何解决《Redis中列表和集合处理的最佳实践是什么?》经验,为你挑选了1个好方法。

我们使用Redis作为缓存服务器,并且经常需要处理缓存列表.当我们缓存简单对象时,我们执行GET,如果对象不存在,Redis将返回null,并且我们将知道该对象未缓存并且必须从数据库加载.

但是我们如何才能最好地处理相同的列表 - 空列表可以是有效值.我们是否需要调用EXISTS来检查列表是否存在(但是使操作2调用而不是一个)或者是否有人更好地了解如何处理这种情况?

/谢谢



1> antirez..:

如果您绝对需要这样做,那么在创建列表时,您可以将"sentinel"作为从未删除的第一个元素.为了以原子方式执行此操作,您可以使用MULTI/EXEC/WATCH,但是Watch仅在Redis 2.2中可用,目前是预览版(即使非常稳定,您也可以从github master分支中获取它).

我认为在你的用例中你可能也想要RPUSHX和LPUSHX,只有当它已经存在时才会原子地推送到列表中.

请注意,由于Redis 2.2存在意味着列表中至少有1个元素,因为有很多理由会自动删除将达到零元素的列表;)

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有