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

[经验分享] Redis知识点

[复制链接]

尚未签到

发表于 2018-11-5 06:05:54 | 显示全部楼层 |阅读模式
  1、关于配置文件
  redis启动如果不显式地指定配置文件,则默认不使用任何配置文件,而是使用它自己的默认配置。所以,如果修改了配置文件的内容,但若启动时没有显式地指定它,则对它的修改不会有任何效果。
  如果redis_6379里配置文件是/etc/redis/6379.conf,则使用redis-server /etc/redis/6379.conf启动,与使用/etc/init.d/redis_6379start启动是启动的同一个实例。
  vim /etc/init.d/redis_6379
#!/bin/sh  
#Configurations injected by  install_server below....
  

  
EXEC=/usr/local/bin/redis-server
  
CLIEXEC=/usr/local/bin/redis-cli
  
PIDFILE=/var/run/redis_6379.pid
  
CONF="/etc/redis/6379.conf"
  
REDISPORT="6379"
  2、Redis复制
  (1)在同一台主机的不同实例之间实现复制:只需在slave实例的配置文件中,添加:
slaveof master_ip master_port  就可以了;
  (2)在不同主机之间实现复制:除了实现(1)中的配置之外,还需要:
  A.在master的配置文件中注释掉监听地址 bind一行
  B.将protected-mode的值由yes改为no(仅限没有设置bind并且没有设置密码的时候)
  设置密码:
  在配置文件中加入
requirepass redis  以上“redis”即为密码。保存后重启master的服务。
[root@host103 ~]# /etc/init.d/redis_6379 restart  
Stopping ...
  
Redis stopped
  
Starting Redis server...
  
[root@host103 ~]# redis-cli -p 6379 info
  
NOAUTH Authentication required.
  
[root@host103 ~]# redis-cli -p 6379
  
127.0.0.1:6379> keys *
  
(error) NOAUTH Authentication required.
  
127.0.0.1:6379> auth redis
  
OK
  
127.0.0.1:6379> keys *
  
1) "c"
  
2) "d"
  
3) "a"
  
4) "b"
  
5) "e"
  在master设置密码之后,slave是无法与其进行同步的,此时要修改slave的配置文件:
slaveof 127.0.0.1 6379  

  
# If the master is password protected (using the "requirepass" configuration
  
# directive below) it is possible to tell the slave to authenticate before
  
# starting the replication synchronization process, otherwise the master will
  
# refuse the slave request.
  
#
  
# masterauth
  

  
masterauth redis
  保存并重启slave服务。
  遇到的一个问题:
  在虚拟机不同主机(192.168.1.111和192.168.1.112)之间配置redis复制,slave端已经加入“slaveof DSC0000.png 192.168.1.111 6378”,并且在master注释掉bind,但无法实现复制,在slave上显示:
redis-cli -p 6379 info
DSC0001.png

  查看slave端的日志:
tail -n200 /var/log/redis_6379.log

  在112上运行如下命令:
[root@host112 log]# telnet 192.168.1.111 6379  有如下结果:
  [root@host112 log]# telnet 192.168.1.111 6379
  Trying 192.168.1.111...
  Connected to 192.168.1.111.
  Escape character is '^]'.

  -DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2)>  Connection closed by foreign host.
  参考http://arui.me/index.php/archives/151/
  将master的这一项protected-mode由yes改为no,就可以正常实现复制了。该参数是3.2版本之后加入的新特性。
  (未完待续)



运维网声明 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-630770-1-1.html 上篇帖子: ELK(elasticsearch+logstash+kibana)+redis实现nginx 日志的分析 下篇帖子: Redis protected-mode
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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