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

[经验分享] redis基本配置和相关设置

[复制链接]

尚未签到

发表于 2017-12-21 18:34:53 | 显示全部楼层 |阅读模式
  redis-cli:the redis command line interface
  command line usage:
  $redis-cli incr mycounter
  输出的结果只会显示在终端,如果需要将结果指定到相应的文件,需要自己定义
  $redis-cli incr mycounter >/tmp/output.txt
  连接非本机和非默认端口:
  $redis-cli -h reedis15.localnet.org -p 6390 ping
  如果实例通过密码保护:
  $redis-cli -a kasumi ping
  getting input from other programs:
  $redis-cli -x set foo < /etc/services
  或者
  $cat /tmp/commands.txt | redis-cli
  文件中的命令会一次执行
  continuously run the same command:
  -r:count -i:delay
  $redis-cli -r 5 incr foo
  (integer) 1
  (integer) 2
  (integer) 3
  (integer) 4
  (integer) 5
  $redis-cli -r 1 -i 1 INFO | grep rss_human
  CSV output:
  使用redis-cli快速导出数据到外部程序
  $redis-cli lpush mylist a b c d
  (integer) 4
  $redis-cli --csv lrange mylist 0 -1
  "d","c","b","a"
  running Lua scripts:
  使用redis-cli执行脚本
  $ cat /tmp/script.lua
  return redis.call('set',KEYS[1],ARGV[1])
  $ redis-cli --eval /tmp/script.lua foo , bar
  OK
  interactive mode:(交互模式 )
  redis-cli对于脚本和确定类型的测试很有帮助,使用redis-cli而不加任何参数,将进入interactive mode.
  使用connect连接不同的实例,指明主机名和端口:
  connect metal 6379
  metal:6379>
  出于非连接状态的时候,CLI会企图自动重新连接,如果尝试连接失败,将会给出错误的信息,并且显示当前未连接的状态。
  127.0.0.1:6379> debug restart
  Could not connect to Redis at 127.0.0.1:6379: Connection refused
  not connected> ping
  PONG
  127.0.0.1:6379> (now we are connected again)
  如果在操作的中间过程失去连接,当重新建立连接后,redis-cli会自动选择最新的数据,之前的数据状态会丢失,
  虽然这不是一个经常发生的情况,但是需要了解这个限制。
  getting a list of keys:
  $redis-cli --scan | head -10
  $redis-cli --scan --partten '-11' --使用--partten筛选需要查询的值的类型
  $redis-cli --scan --partten 'user:*' | wc -1 --使用wc对筛选的结果进行统计
  pub/sub mode:
  sub需要块和等待信息的写入
  $redis-cli psubscribe '*'
  monitoring commands executed in redis:
  $redis-cli monitor
  可以使用grep来过滤需要监控的特定的数据
  remote backup of RDB files:
  在redis同步之后,主从通过RDB的形式交换数据.
  $redis-cli --rdb /tmp/dump.rdb
  SYNC sent to master, writing 13256 bytes to '/tmp/dump.rdb'
  Transfer finished with success.
  是备份恢复的有效解决方式,在备份的过程中,如果返回值不是0,则表明在备份的过程中出现了错误。
  slave mode:
  $redis-cli --slave
  redis configuration:
  redis可以通过安装时默认的配置文件启动,但是这只适用于测试.
  the self documented redis.conf for redis3.0
  --https://raw.githubusercontent.com/antirez/redis/3.0/redis.conf
  changing redis configuration while the server is running:
  在不停止和重启的情况下修改redis的配置文件,可以使用CONFID SET和CONFIG GET,但是这种更改对redis.conf文件不会有任何影响,
  所以在下一次重启的时候,会使用之前的配置文件.
  使用CONFIG REWRITE去重写redis.conf,会自动扫描redis.conf,更新与当前的配置不匹配的参数值。
  replication:(复制)
  1.redis使用异步的同步机制
  2.一个主服务可以有多个从服务
  3.从服务可以接受其他非同一注服务的从服务的连接,作为一个级联的结构
  safety of replication when master has persistence turned off:
  当开启复制的时候,强烈建议保持主服务一直开启,如果不能确保主服务一直开启,应当避免在服务器重启后,自动重启redis服务.
  当从服务进行复制的时候,会删除之前保持的数据,保持新复制的数据。如果主服务出于关闭状态,当开机自动重启后,主服务中的数据是空的,
  当从服务去复制数据的时候,将会复制空数据,然后删除之前所保留的数据。
  every time data safety is important !!!
  diskless replication:
  repl-diskless-sync参数
  slave-read-only
  redis可写的数据个数大于63,但是默认redis实例只可以连接16个数据库
  如果master使用了请求认证,slave在同步操作的时候需要进行密码验证,可以将master的密码认证写入到配置文件,永久生效:
  masterauth
  redis administration:
  redis setup hints:
  1.vim /etc/sysctl.conf
  vm.overcommit_memory = 1
  重启服务器或者执行sysctl vm.overcommit_memory=1使配置立即生效
  2.停止linux内核的相关参数
  echo never > /sys/kernel/mm/transparent_hugepage/enabled
  3.确保有一定的swap空间
  4.redis默认不需要密码验证,可以监听所有的接口
  upgrading or restarting a redis instance without downtime:
  1.开启slave,需要另外的服务器或者足够的RAM空间来保证两个redis实例同时运行
  2.如果是单实例,则需要在其他端口运行redis服务
  3.等待复制的初始同步完成
  4.使用INFO确保master和slave保持相同的key值,并且slave可以响应指令
  5.允许slave可以进行写操作:config set slave-read-only no
  6.配置所有的客户端,使其可以使用新的实例
  7.保证master不再接收任何序列,然后选取slave作为master,使用SLAVEOF NO ONE,然后关闭master
  redis security:
  bind 127.0.0.1
  authentication feature:
  如果有其他的防火墙的保护,就不需要进行密码的设置
  $vim /data/redis/etc/redis.conf
  requirepass Dm1vh3u1jyjsYMVc
  redis clients handing:
  in what order clients are served:
  当有新的请求的时候,才会处理一个read的信号。
  output buffers lilmits:
  redis需要处理一个长度可变的输出缓存,命令可以产生很大的数据,传输给客户端。
  hard limit:当缓存达到限制值的时候,redis会关闭其他客户端的连接
  soft limit:依赖于时间的限制,在某一个连续的时间段,输出缓存超出某个限制,则会关闭连接
  不同的客户端有不同的默认限制:
  1.一般的用户,没有缓存的限制
  2.pub/sub clients,hard limit:32 soft limit:8 60
  3.slave,hard limit:256 soft limit:64 60
  在配置文件中修改缓存的限制
  client timeouts:
  超时请求只适用于normal clients,不适用于pub/sub clients.
  client list
  查看连接的client,client kill+addr停止特定的client.
  high availability:
  1.监控:检测系统会持续检测master和slave是否正常工作
  2.告警:检测系统会通过API通知管理员或者其他的计算机程序,redis出现了错误
  3.走动的失败检测:当master服务没有正常运行的时候,检测系统会开启一个其他的slave作为新的master,其他的slave将以新的master来应用数据
  4.配置文件提供者:当客户端进行连接的时候,检测系统会请求master的地址,响应服务,如果有失败出现,检测系统会提供新的master
  running sentinel:
  1.redis-sentinel /path/to/sentinel.conf
  2.redis-server /path/to/sentinel.conf --sentinel
  检测系统默认使用26379端口。检测系统会默认使用配置文件来开启服务,配置文件需要有可写的权限。
  adding or removing sentinels:
  A:redis的自动发现功能,会在添加sentinel后,自动接收数据,只需要在master上添加一个sentinel即可
  如果要添加多个sentinel,需要一个一个的添加,当之前添加的sntinel可以接受数据后,再添加下一个
  B:1.停止想要移除的sentinel程序
  2.使用 SENTINEL RESET * 来执行需要移除的mater的tentinel
  3.确保所有的sentinel可以发现目前所使用的sentinel的状态---SENTINEL MASTER mastername
  removing the old master or unreachable slave:
  slaves priority:
  slave-priority,1.如果其值被设置为0,那么slave将永远不会被选作master
  2.sentinel优先选择slave priority值较小的作为master

运维网声明 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-426575-1-1.html 上篇帖子: Redis的数据类型之String 下篇帖子: Centos7安装php-redis扩展
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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