redis 配置

redis-cli -h 127.0.0.1 -p 6379  [-a passwprd] [-n database] set cli1 1    ---- cli执行命令

#系统内核有关配置

 #tcp_backlog    

#RDB

save 900 1    #当有一条Keys数据被改变时,900秒刷新到Disk一次
save 300 10   #当有10条Keys数据被改变时,300秒刷新到Disk一次
save 60 10000 #当有10000条Keys数据被改变时,60秒刷新到Disk一次

#AOF

 appendonly yes        #启用AOF
 appendfilename        #保存的文件!不能有路径
 appendfsync           #always | everysec | no
no-appendfsync-on-rewrite yes         #在日志重写时不进行命令追加操作
auto-aof-rewrite-percentage 100       #当增加文件大小达到原来的AOF文件的"100%" 时,自动进行重写
auto-aof-rewrite-min-size 64mb        #启动日志重写的最小值
 

redis-cli > info                

找到最后几行:

db0: key的数量是:11,

内存使用量是: 891.52k

#主从配置

主:6379,从6380,6381

cp /usr/local/redis cp /usr/local/redis_6380

cp /usr/local/redis cp /usr/local/redis_6381

修改从6380和6381的redis.conf:配置文件

vi  /usr/local/redis_slave_6380/redis.conf

bind 127.0.0.1
port 6380
pidfile /var/run/redis_slave_6380.pid
slave 127.0.0.7 6379    
slave-read-only yes
dir /usr/local/redis_slave_6380/data
#masterauth 123456 

vi  /usr/local/redis_slave_6381/redis.conf

bind 127.0.0.1
port 6381
pidfile /var/run/redis_salve_6381.pid
slave 127.0.0.7 6379    
slave-read-only yes
dir /usr/local/redis_slave_6381/data
#masterauth 123456 


info replication 可看出6380是从

从服务器变成主服务器:

杀掉住服务器


重启开启66379的redis服务



sentinel(哨兵)配置

vi  /usr/local/redis/sentinal.conf

port 36379
sentinel monitor mymaster 127.0.0.1 6379 2        --监视一个主服务器,判断主服务器失效至少需要2个
                                                     Sentinel同意(不要两个,自动故障迁移就不执行)
sentinel down-after-milliseconds mymaster 60000   --指定Sentinel认为服务器已经断线的毫秒数(主观掉线)
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1                --故障转移时,每次只有"1"个服务器处于不能处理命令的状态(同时对新服务器同步

vi  /usr/local/redis/sentinal-36379.conf

port 36379
sentinel monitor mymaster 127.0.0.1 6379 2          --监视一个主服务器,判断主服务器失效至少需要2个Sentinel同意(不要两个,
                                                     自动故障迁移就不执行)
sentinel down-after-milliseconds mymaster 60000   --指定Sentinel认为服务器已经断线的毫秒数(主观掉线)
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1                --故障转移时,每次只有"1"个服务器处于不能处理命令的状态(同时对新服务器同步

启动两个sentinel

redis-server /usr/local/redis/sentinal.conf --sentinel

redis-server /usr/local/redis/sentinal-36379.conf --sentinel


redis-cli -p 26379                                                            --连接sentinel

127.0.0.1:26379> sentinel masters

127.0.0.1:26379> sentinel master mymaster

127.0.0.1:26379> sentinel slaves mymaster

127.0.0.1:26379> sentinel get-master-addr-by-name mymaster

测试

sentinel down-after-milliseconds mymaster 60000 #60秒 所以下面设置70秒

127.0.0.1:6379> debug sleep 70

此时 6381 变成了主服务器, 6379 变成了从服务器

Sentinel commands

常用
  • PING This command simply returns PONG.
  • SENTINEL masters Show a list of monitored masters and their state.
  • SENTINEL master <master name> Show the state and info of the specified master.
  • SENTINEL slaves <master name> Show a list of slaves for this master, and their state.
  • SENTINEL sentinels <master name> Show a list of sentinel instances for this master, and their state.
  • SENTINEL get-master-addr-by-name <master name> Return the ip and port number of the master with that

少用


内存优化

hash-max-ziplist-entries 512                      #最大key的个数      !测试过程中256较佳
hash-max-ziplist-value 64                           #最大键值长度        !1024

!可以将类似javabean的各个属性值保存在hash数据结构里,充分利用内存压缩


redis-cluster配置

复制三份redis                                            #要删除appendonly,dump.db文件,不然创建集群时会有下面的错误

cp -r /usr/local/redis /usr/local/redis-cluster-7000
cp -r /usr/local/redis /usr/local/redis-cluster-7001
cp -r /usr/local/redis /usr/local/redis-cluster-7002

修改redis.conf 以7000配置作为实例

#最少修改配置

port 7000
cluster-enabled yes
cluster-config-file nodes.conf    #这个是启动服务器服务时自动创建的文件
cluster-node-timeout 5000
appendonly yes

其他

dir /usr/local/redis-cluster-7000/data

分别启动集群服务


创建集群                                                                                         #ruby需要安装2.2以上的

./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 \    #--replicas 1 表示每个主几点创建从节点
127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

客户端访问集群

redis-cli -c -p 7000

#查看集群信息

cluster info                                                              

命令操作


redis-trib.rb的命令如下

  create          host1:port1 ... hostN:portN
                  --replicas <arg>
  check           host:port
  info            host:port
  fix             host:port
                  --timeout <arg>
  reshard         host:port
                  --from <arg>
                  --to <arg>
                  --slots <arg>
                  --yes
                  --timeout <arg>
                  --pipeline <arg>
  rebalance       host:port
                  --weight <arg>
                  --auto-weights
                  --use-empty-masters
                  --timeout <arg>
                  --simulate
                  --pipeline <arg>
                  --threshold <arg>
  add-node        new_host:new_port existing_host:existing_port
                  --slave
                  --master-id <arg>
  del-node        host:port node_id
  set-timeout     host:port milliseconds
  call            host:port command arg arg .. arg
  import          host:port
                  --from <arg>
                  --copy
                  --replace

redis-trib.rb info 127.0.0.1:7000

redis-trib.rb call  127.0.0.1:7000 set haha 1

redis-trib.rb fix 127.0.0.1:7000

redis-trib.rb add-node --slave 127.0.0.1:27000 127.0.0.1:7000

redis-trib.rb del-node 127.0.0.1:7000 83e9cb81dbda2f37c1932dd95503a5db0b9de31a  ! 确保主节点是空的,或者手动故障迁移志从节点再进行相关操作


增加新节点并且分配槽

修改集群的从节点的主节点

redis-cli -c  -p 27001 cluster replicate cfda3fc799e7e862dce5ed99fa7537edb759d763


手动故障迁移

cluster failover                                                    #从节点的连接下执行


装ruby时解决办法:

1.源码安装参考例子.centos yum 好像安装不了2.2以上的

https://github.com/postmodern/ruby-install#readme

2. /usr/local/ruby/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- redis (LoadError)

        from /usr/local/ruby/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        from ./redis-trib.rb:25:in `<main>

gem install redis


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

廖钺焕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值