redis 本地缓存优化之 socket 连接

本贴最后更新于 959 天前,其中的信息可能已经事过境迁

原文

redis 本地缓存优化之 socket 连接

背景

在我们日益复杂的系统中,总会有很多对时效性要求不大或者更新频率很低的数据,为了减少网络和计算耗时,我们会将计算结果缓存起来来提高系统性能。

解决方案

提到缓存,我们很容易想到 redismemcache 等内存缓存工具,鉴于 redis 支持跟多的数据结构和持久化等特性,我会更倾向于前者。这样在应用机器上本地部署 redis 服务器就可以用来缓存前面提到的可缓存数据。

如何进一步优化

一般情况下,我们都是以 tcp 的连接方式使用 redis,这也是其默认支持的方式,但是这样的话即使是在本机,也会产生网络请求(想想三次握手、四次挥手。。。),对性能是有一定损耗的,联想到 php-fpmnginx 可以使用 tcpunix-socket 方式,那 redis 是否也可以呢?经过了解,是可以的!所以我们这里也改成 unix-socket 方式。

如何配置

在 redis.conf 文件中取消注释两条语句:

unixsocket /tmp/redis.sock 
unixsocketperm 700
复制代码

然后运行 redis,创建 redis 连接时用 redis.new (:path =>"/tmp/redis.sock"),即可

性能对比

SET 和 GET 操作提升 60% 左右。

  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 247 回帖 • 181 关注
1 操作
zhaozhizheng 在 2021-09-03 16:36:26 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
zhaozhizheng
没有人会关心你付出过多少努力,撑得累不累,摔得痛不痛,他们只会看你最后站在什么位置,然后羡慕或者鄙夷 北京