[英]stackexchange redis cache performance
我必须使用stackexhange.redis C#经常在redis缓存中添加N(独立)项目,每个C#都有不同的到期时间,这样客户端的最小时间和服务器端的最小阻塞和成本。 Redis服务器每秒会收到数百个获取请求,所以我根本不想弄乱获取时间。
我在这里阅读了文档并在 这里回答。 我找不到执行此操作的单个方法。 考虑不同的选择:
哪个应该是最好的方法? 我假设竞争操作意味着2个插入,并且一个get和insert不能一起使用,尽管它们可能正在访问不同的键。 我在这方面是否正确,否则是什么意思?
Redis在数据库上读取或写入时是单线程的。
您的案例中最好的解决方案是什么? 谁知道,它可能取决于很多变量,每个用例都应该单独分析以实现正确的解决方案。
Redis MULTI
无法避免,除非您想在应用程序层出现问题时破坏您的数据。 实际上,如果你想避免对Redis的许多请求,你应该使用Lua脚本 。
另一方面,Redis的目的是尝试进行许多操作,但由于Redis的单线程特性,确保它们尽可能小。 是的,它非常快,除非你执行一个花费太多时间的操作。
总而言之,我不会太担心将许多请求作为内存数据库发送并在光速下工作。 此外,考虑Redis Cluster (即分片 )的奇迹,以便能够优化您的场景。
最后,我将看看这个Redis教程: Redis延迟问题故障排除
您应该添加到选项列表Lua脚本。 见EVAL 。
另外,请考虑您将使用的数据结构。 例如,您可以使用MSET通过一跳在Redis中发送多个值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.