redis介绍:

redis是一个key-value的内存存储系统,和memcache类似,但能够支持数据持久化。redis支持存储的数据类型非常多,包括:字符串、哈希表、链表、集合、有序集合以及基于这些数据类型的相关操作。redis使用C语言开发,针对内存分配方面做了优化。Redis支持的客户端语言也非常丰富,常用的计算机语言如C、C#、C++、Object-C、PHP、Python、 Java、Perl、Lua、Erlang等均有可用的客户端来访问Redis服务器。目前redis无论在大公司还是小公司都有着广泛的应用。

 

redis安装:

redis安装比较简单,直接下载源码编译安装即可,当时事先要安装gcc,以redhat系列系统为例:

# yum install -y gcc
# tar -czvf redis.tar.gz
# cd redis
# make && make test && make install

 make test这一步是测试redis的基本功能,确保redis能在你的机器上正常运行。

 

启动redis:

# redis-server /etc/redis/redis.conf

 配置文件的具体意义等下介绍

一个具体的配置文件如下:

daemonize yes
pidfile "/var/run/redis.pid"
port 6381
tcp-backlog 511
timeout 0
tcp-keepalive 0
loglevel notice
logfile "/var/log/redis.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "/var/lib/redis/"
masterauth "go-redis"
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
repl-backlog-size 1mb
slave-priority 100
requirepass "go-redis"
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

 

设置redis的主备关系:

# redis-cli -a testpass -p 6381 
> slaveof 10.1.1.2 6381
OK

  或者执行:

# redis-cli -a testpass -p 6381 slaveof 10.1.1.2 6381

  查看主备配对关系:

# redis-cli -p 6381 info replication
# Replication
role:slave
master_host:1.1.1.2
master_port:6381
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_repl_offset:0
master_link_down_since_seconds:1507368352
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:da725ce3153f5e4bf544924293259aaa31b728f2
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

  取消主备关系:

[root@rh6350G redis]# redis-cli -p 6381 slaveof NO ONE
OK
[root@rh6350G redis]# redis-cli -p 6381 info replication
# Replication
role:master
connected_slaves:0
master_replid:c4090d642878080ab4d59bbe847e94aab294d6b8
master_replid2:da725ce3153f5e4bf544924293259aaa31b728f2
master_repl_offset:0
second_repl_offset:1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

  配置sentinel:

 sentinel是来监控redis的组件,sentinel本身是一个集群,一般配置3个或者5个节点以保证高可用性,类似zookeeper集群。一个sentinel的典型的配置文件如下:

port 26380
daemonize yes
logfile "/var/log/sentinel_log.log"
dir "/tmp"
sentinel monitor master0 10.1.1.1 6381 2
sentinel down-after-milliseconds master0 15000
sentinel auth-pass master0 go-redis
sentinel config-epoch master0 156
sentinel leader-epoch master0 156
sentinel known-slave master0 10.1.1.1 6381
sentinel known-sentinel master0 10.1.1.1 26380 5970281bfa14f40f3ba8b75a2f87d570aac99bc8
sentinel known-sentinel master0 10.1.1.3 26380 59ee62deddd88597e591c288a65b20d865df12d6
sentinel monitor master2 10.1.1.3 6381 2
sentinel down-after-milliseconds master2 15000
sentinel auth-pass master2 go-redis
sentinel config-epoch master2 158
sentinel leader-epoch master2 158
sentinel known-slave master2 10.1.1.1 6381
sentinel known-slave master2 10.1.1.4 6381
sentinel known-sentinel master2 10.1.1.1 26380 5970281bfa14f40f3ba8b75a2f87d570aac99bc8
sentinel known-sentinel master2 10.1.1.3 26380 59ee62deddd88597e591c288a65b20d865df12d6
sentinel monitor master1 10.1.1.1 6382 2
sentinel down-after-milliseconds master1 15000
sentinel auth-pass master1 go-redis
sentinel config-epoch master1 153
sentinel leader-epoch master1 153
sentinel known-slave master1 10.1.1.2 6382
sentinel known-sentinel master1 10.1.1.1 26380 5970281bfa14f40f3ba8b75a2f87d570aac99bc8
sentinel known-sentinel master1 10.1.1.3 26380 59ee62deddd88597e591c288a65b20d865df12d6
sentinel monitor master3 10.1.1.3 6382 2
sentinel down-after-milliseconds master3 15000
sentinel auth-pass master3 go-redis
sentinel config-epoch master3 139
sentinel leader-epoch master3 135
sentinel known-slave master3 10.1.1.4 6382
sentinel known-sentinel master3 10.1.1.1 26380 5970281bfa14f40f3ba8b75a2f87d570aac99bc8
sentinel known-sentinel master3 10.1.1.3 26380 59ee62deddd88597e591c288a65b20d865df12d6
sentinel current-epoch 158

  

  这个例子中,10.1.1.1,10.1.1.2,10.1.1.3,这三台机器都部署sentinel,来监控10.1.1.1和10.1.1.2这两台redis服务器。

 

启动sentinel:

# redis-sentinel  /etc/redis/sentinel.conf

  

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!