原文
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% 左右。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于