redis本地缓存优化之socket连接
背景
在我们日益复杂的系统中,总会有很多对时效性要求不大或者更新频率很低的数据,为了减少网络和计算耗时,我们会将计算结果缓存起来来提高系统性能。
解决方案
提到缓存,我们很容易想到redis
、memcache
等内存缓存工具,鉴于redis
支持跟多的数据结构和持久化等特性,我会更倾向于前者。这样在应用机器上本地部署redis
服务器就可以用来缓存前面提到的可缓存数据。
如何进一步优化
一般情况下,我们都是以tcp
的连接方式使用redis
,这也是其默认支持的方式,但是这样的话即使是在本机,也会产生网络请求(想想三次握手、四次挥手。。。),对性能是有一定损耗的,联想到php-fpm
跟nginx
可以使用tcp
和unix-socket
方式,那redis
是否也可以呢?经过了解,是可以的!所以我们这里也改成unix-socket
方式。
如何配置
在redis.conf文件中取消注释两条语句:
unixsocket /tmp/redis.sock
unixsocketperm 700
然后运行redis,创建redis连接时用redis.new (:path =>"/tmp/redis.sock"),即可
性能对比
SET和GET操作提升 60%左右。
转载自:https://juejin.cn/post/6847902219753390088