设为首页 收藏本站
查看: 1127|回复: 0

[经验分享] 高性能网站架构设计之缓存篇(3)- Redis 的配置

[复制链接]

尚未签到

发表于 2015-7-20 10:14:12 | 显示全部楼层 |阅读模式
  我们说Redis是一个强大的Key-Value存储系统,在前面我们已遇到了两个问题:
  1、redis server 启动后,独占进程,能不能修改为后台服务呢?
  2、redis server 服务是单线程的,而我的机器是多核的,能不能在同一台机器上开启多个实例更充分的利用 cpu 资源呢?但6379端口已经被前一个实例绑定,肯定会有冲突,那能不能修改默认端口呢?
  答案是肯定的,redis 提供了灵活的配置方式,一种可以通过配置文件来配置,另一种你可以在运行时通过 config set 命令来修改配置。
  我们先来看看配置文件吧。
  殊不知我们在前面启动 server 的时候敲的 ./redis-server 命令,如果后面不附加参数,它是按默认配置来启动 redis 服务的,其实它后面还可以附加一个配置文件路径的参数。这个配置文件在哪?在redis根目录下有一个redis.conf文件,这个文件为了提供了默认的配置和示例。你不要轻易去动这个文件,除非你非常牛逼。我们还是保险起见先复制一个副本吧。打开副本我们发现这个文件真的好大好长啊,全是英文看得我也难受啊,也不见哪座大神帮忙翻译一下,给个现成的中文版,太自私了吧,哥今天一晚不睡也要给你们一个交代。
  太长了,翻译了一个晚上才搞了一部分出来,不过主要的配置项都翻译出来了,我后面有时间继续翻译。看这里。记得顺便去关注一下我的 restful.data 。
  把这个文件下载下来后,拷贝到 src 目录下面,也就是和 redis-server 在同一个目录,方便我们操作。
  我们稍微改一下配置,看看能不能把我们前面提到的两个问题解决了。
  首先我们修改 daemonize 配置项,把它设置为 yes,打开终端,我们执行一下 redis-server 命令。
zhaoguihuadediannao:~ zhaogh$ cd applications/dev/redis/src
zhaoguihuadediannao:src zhaogh$ ./redis-server ./redis.conf
zhaoguihuadediannao:src zhaogh$ ./redis-cli
127.0.0.1:6379>
是不是已经不再独占进程了,启动守护进程后,我们仍然可以执行 redis-cli 命令。
先停掉 redis 服务:
127.0.0.1:6379> shutdown
127.0.0.1:6379> quit
zhaoguihuadediannao:src zhaogh$
  然后我们修改 port 配置项为 6378,然后再启动服务:
zhaoguihuadediannao:src zhaogh$ ./redis-server ./redis.conf
zhaoguihuadediannao:src zhaogh$ ./redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>
  因为我们修改了默认端口号,已经连不上去了,尝试加上端口参数。
zhaoguihuadediannao:src zhaogh$ ./redis-cli -p 6378
127.0.0.1:6378>
成功了连上了。
  篇幅有限,redis.confi 中其他配置项请大家结合注释去深入的了解。
  下面介绍另外一种配置方式,通过命令行来配置。
  假如说我们不想修改配置文件来启动指定端口号的redis服务,我们可以在终端上执行下面的命令:
zhaoguihuadediannao:src zhaogh$ ./redis-server --port 6379 --daemonize yes
zhaoguihuadediannao:src zhaogh$ ./redis-cli -p 6379
127.0.0.1:6379>
但我还是推荐使用配置文件的方式。
如果在生产环境里面需要修改某些配置项,但我们又不想停掉服务,怎么办?
Redis允许在运行的过程中,在不重启服务器的情况下更改服务器配置,同时也支持 使用特殊的CONFIG SET和 CONFIG GET命令用编程方式查询并设置配置。
127.0.0.1:6379> config get port
1) "port"
2) "6379"
127.0.0.1:6379>
127.0.0.1:6379> config set port 6380
(error) ERR Unsupported CONFIG parameter: port
127.0.0.1:6379>
我试图直接修改端口号,没有成功,我是有点想当然了,因为一旦修改端口必然需要重启服务,重新绑定端口,所以并不是所有的配置项都能在运行时进行修改。
那我们来修改一个允许修改的配置项。
127.0.0.1:6379> config set tcp-keepalive 60
OK
127.0.0.1:6379>
上面的例子,我把心跳包发送时间间隔修改成了60秒。你们可以自己尝试着去修改其他配置项。
技术上有很多事情不是靠看几篇文章,通过道听途说就能明白的,想要真正弄清楚,必须要自己亲自去尝试,实践才是检验真理的唯一标准,就像很多朋友给我推荐车一样,说这车好,那车差,其实自己都没开过,我发现很多程序员嘴上都说的一套一套的,实际做起事来真不行,这样的人适合做销售,会忽悠,当然这也是种能力。
下期预告,Redis 的主从复制,敬请期待。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-88604-1-1.html 上篇帖子: Redis学习笔记~Redis提供的五种数据结构 下篇帖子: Redis Web界面管理工具
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表