Redis配置简析(一)

来源:互联网 发布:三级分销直销系统源码 编辑:程序博客网 时间:2024/06/10 10:52
先介绍简单的redis单机安装及主从配置,之后介绍redis Cluster集群功能(集群是从redis3.0之后才有的功能)。

 1、安装

下载,解压和安装:
$ wget http://download.redis.io/releases/redis-2.8.18.tar.gz
$ tar xzf redis-2.8.18.tar.gz
$ cd redis-2.8.18
$ make
编译后的可执行文件在src目录中,可以使用下面的命令运行Redis:
$ src/redis-server (若想启动多个端口redis,可配置多个conf 用src/redis-server redis-1.conf启动)
你可以使用内置的客户端连接Redis:
$ src/redis-cli (若含有密码用-a,指定端口-p 不指定默认6379)
redis> set foo bar
OK
redis> get foo
"bar"

 2、主从配置
1)主服务器配置如上,注意redis.conf下面两行:
port 6381 #修改端口
requirepass passtest #设置密码

从服务器注意redis.conf下面几行:
port 6381 #修改端口
dbfilename salve.rdb
slaveof 192.168.0.177 6380
masterauth passtest
requirepass passtest #设置密码

2)主服务器启动
src/redis-server redis.conf
从服务器启动
src/redis-server redis.conf
若显示以下界面说明启动成功:
3)测试
src/redis-cli -h 192.168.0.177 -p 6380 -a passtest
redis 192.168.0.177:6379> set number 1
OK
redis 192.168.0.177:6379> get number
"1"
redis 192.168.0.177:6379> quit

[root@server11 ~]# src/redis-cli -h 192.168.0.113
redis 192.168.0.113:6379> get number
"1"
redis 192.168.0.113:6379> del number
(error) READONLY You can't write against a read only slave.
redis 192.168.0.113:6379> quit

 3*、集群配置(待确认)
1)在192.168.0.177 192.168.0.166上分别安装
修改redis.conf
#port 6375
#requirepass passpwd
#cluster-enabled yes
#cluster-config-file "nodes.conf"
#cluster-node-timeout 1500
启动服务
#nohup /root/redis-3.0.0-rc1/redis-server /root/redis-3.0.0-rc1/redis.conf &
安装方法:http://blog.csdn.net/myrainblues/article/details/25881535
http://hot66hot.iteye.com/blog/2050676
启动cluster:
#/root/redis-3.0.0-rc1/src/redis-trib.rb create --replicas 1 192.168.0.166:6375 192.168.0.166:6376 192.168.0.166:6377 192.168.0.177:6375 192.168.0.177:6376 192.168.0.177:6377

#redis-cli -c -p 6381
#/root/redis-3.0.0-rc1/src/redis-trib.rb add-node 192.168.0.177:6381 192.168.0.177:6375
#redis-trib.rb reshard 192.168.0.177:6381

4、快照功能

数据持久化通俗讲就是把数据保存到磁盘上,保证不会因为断电等因素丢失数据。
redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持两种持久化方式,一种是 Snapshotting(快照)也是默认方式,另一种是Append-only file(缩写aof)的方式
snapshotting(快照)方式:
这种方式是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb(redis的bin目录下).
可以通过配置设置自动做快照持久化的方式.我们可以配置redis在n秒内如果超过M个KEY修改就自动做快照.
save 900 1 #900秒内如果超过1个KEY被修改,则发起快照.
save 300 10 #300秒内如果超过10个KEY被修改,则发起快照.

快照保存机制:
1: redis先调用fork子进程,
2: 子进程负责将内存内容写入到临时文件.
3: 当子进程将快照写入临时文件完毕时,替换原来快照文件.子进程退出.
快照是在一定间隔时间做一次的,如果redis意外down掉的话,就会丢失最后一次快照时所有修改.
每次快照持久化都是将内存数据完整写入到磁盘一次,并不 是增量的只同步脏数据。如果数据量大的话,而且写操作比较多,必然会引起大量的磁盘io操作,可能会严重影响性能

aof方式:
比快照有更好的持久性,是由于在使用aof时,redis会将每一个收到的写命令都通过write函数追加到文件中,当redis重启时会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容.
文件名为appendonly.aof (redis的bin目录下,存的都是一些操作命令).

[root@localhost redis]# vi /usr/local/redis/etc/redis.conf
修改配置如下:
#开启aof
appendonly no改为appendonly yes

在Redis的配置文件中存在三种同步方式,它们分别是:
#每次有数据修改发生时都会写入AOF文件。效率最慢,但保证完全持久化.
appendfsync always   
#每秒钟同步一次,该策略为AOF的缺省策略。 性能和持久做了很好折中.
appendfsync everysec
#从不同步。高效但是数据不会被持久化.持久化没保证
appendfsync no       

0 0
原创粉丝点击