春天 –Redis与番石榴缓存

春天 –Redis与番石榴缓存,第1张

概述我有一个代码,我已经实现了缓存机制.以前它是基于番石榴的缓存,现在我正在转向Redis考虑集中缓存的需求.但是我担心它的性能,因为与guave相比,我看到redis的性能极低.我测量了api的性能,它从缓存中获取一个类对象在番石榴的情况下,它是5毫秒,而在雷迪斯,它是200毫秒.这是负载测试情况下的平均响应,如果单个请求响应没有太大差异.我已经使用缓存抽象实

我有一个代码,我已经实现了缓存机制.
以前它是基于番石榴的缓存,现在我正在转向Redis考虑集中缓存的需求.

但是我担心它的性能,因为与guave相比,我看到redis的性能极低.

我测量了API的性能,它从缓存中获取一个类对象
在番石榴的情况下,它是5毫秒,而在雷迪斯,它是200毫秒.
这是负载测试情况下的平均响应,如果单个请求响应没有太大差异.
我已经使用缓存抽象实现了Spring数据Redis.

以下是Redis配置示例:

 @Bean public RedisConnectionFactory redisConnectionFactory(@Value("${redis.host}") String redisHost,@Value("${redis.port}") Integer redisPort) {        JedisConnectionFactory cf = new JedisConnectionFactory();        cf.setHostname(redisHost);        cf.setPort(redisPort);        cf.setUsePool(true);        JedisPoolConfig jedisPool = new JedisPoolConfig();        jedisPool.setMaxTotal(500);        cf.setPoolConfig(jedisPool);        return cf;    }    @Bean(name = "redistemplate")    Redistemplate

除此之外,对于redis服务器配置,我已经尝试禁用所有持久性,因为我不需要它.
但仍然表现不佳.

我的主要问题是,与Guava相比,导致此问题的配置还是Redis的性能非常低?
可以通过更多的配置调整redis性能与番石榴的性能进行比较吗?
请建议.最佳答案免责声明:我不是使用Guava或Redis的专家,尽管我已经同时使用了它们.

明显的绩效损失是显而易见的

对于初学者来说,在我看来,从Guava切换到Redis时遇到性能下降是完全正常的.

主要是因为:

> Guava为应用程序运行的JVM提供内存和本地缓存.因此,您的应用程序可以轻松查询,而无需借助任何进程间通信.
> Redis是一个独立的键值存储应用程序,在自己的进程中运行.因此,您必须以某种方式与其进行通信以建立连接并发送请求.

所以,即使你在同一台机器上,即使Redis固有的性能优于Guava的缓存(事实上可能就是这样,但对于一般情况而言),你肯定会看到性能上的打击.

可能的改进

话虽这么说,您可以通过配置和架构选择来改善您的性能:

>确保使用本地IP连接到Redis.这有助于避免在尝试建立连接时解析任何地址.
>确保通过尽可能轻量级的协议连接到Redis.正如我假设您使用的是本地Redis服务器,并且您遵守上一点,您将不需要任何铃声和口哨声,安全协议等…
>任何其他可能适用于您的方案的常见Redis配置调整. 总结

以上是内存溢出为你收集整理的春天 – Redis与番石榴缓存全部内容,希望文章能够帮你解决春天 – Redis与番石榴缓存所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1266612.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)