2016 - 2024

感恩一路有你

redis缓存在项目中的使用 Redis可以作为一个数据库使用吗?

浏览量:1018 时间:2023-03-24 15:31:51 作者:采采

Redis可以作为一个数据库使用吗?

R

分布式redis缓存如何部署使用?

我的标题号在一篇文章中有详细讨论

希望对你有帮助。

redis怎么缓存用户列表,做到可以分页展示?

普通寻呼

一般是直接找到分页缓存,按页放入缓存,但是这种缓存有很多缺点。

如果缓存不能及时更新,一旦数据发生变化,之前的所有分页缓存都将失效。

比如微博这样的场景,现在微博下面有一个排名靠前的。这在传统的分页中很难处理。

思路

最近想到了另一种思路。

数据缓存在Redis中,ID作为键;

将数据ID和排序分数存储在Redis的跳转列表中,即zset

查找数据时,先从Redis中的skip list中取出对应的分页数据,得到ID列表。

使用multi get一次从redis中获取ID列表中的所有数据。如果有任何数据缺少某个ID,就从数据库中查找,再次返回给用户,并根据ID在Redis中缓存找到的数据。

在最后一步,你可以有一些提示:

比如在某些ID数据缺失的情况下,直接先返回给用户,然后前端用ajax请求缺失的ID数据,再动态刷新。

还有一些优化可能会使用Lua脚本合并操作,但考虑到Lua脚本运行速度较慢,可能需要仔细测试。

如果使用Lua脚本,可以在一个请求中完成以下操作:

查找一个页面上的所有文章,返回缓存文章的ID和内容,以及未缓存文章的ID列表。

其他事情:

Lua支持LRU模式,也就是说,它像Memcached一样工作。但似乎我还没有 没见过有人这样用,很奇怪。

可能redis已经准备好存储了,我不知道 不要担心记忆的容量。

数据 ID 列表 Lua 分页

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。