Linux下安装 Redis
1、wget http://download.redis.io/redis-stable.tar.gz
2、tar xvzf redis-stable.tar.gz
3、cd redis-stable
4、make
前面3步应该没有问题,主要的问题是执行make的时候,出现了异常。
异常一:
make[2]: cc:Command not found
异常原因:没有安装gcc
解决方案:yum install gcc-c++
异常二:
zmalloc.h:51:31:error: jemalloc/jemalloc.h: No such file or directory
异常原因:一些编译依赖或原来编译遗留出现的问题
解决方案:make distclean。清理一下,然后再make。
在mke成功以后,需要make test。在make test出现异常。
异常一:
couldn't execute"tclsh8.5": no such file or directory
异常原因:没有安装tcl
解决方案:yum install -y tcl。
在make成功以后,会在src目录下多出一些可执行文件:redis-server,redis-cli等等
1.Redis配置(单机)
方便后期使用,可以用cp命令复制到usr目录下运行。
cd src
cp redis-server/usr/local/bin/
cp redis-cli/usr/local/bin/
然后新建目录,存放配置文件
mkdir /etc/redis
mkdir /var/redis
mkdir/var/redis/log
mkdir/var/redis/run
mkdir/var/redis/6379
在redis解压根目录中找到配置文件模板,复制到如下位置。
cd ..
cp redis.conf/etc/redis/6379.conf
通过vi命令修改
vi/etc/redis/6379.conf
改动为如下内容:
daemonize yes
pidfile/var/redis/run/redis_6379.pid
logfile/var/redis/log/redis_6379.log
最后运行redis:
使用指定配置文件启动
$/usr/local/redis-stable/src/redis-server /etc/redis/6379.conf
将Redis作为 Linux 服务随机启动
vi /etc/rc.local,使用vi编辑器打开随机启动配置文件,并在其中加入下面一行代码。
/usr/local/redis-stable/src/redis-server/etc/redis/6379.conf
2.redis配置(集群:一主两从三哨兵)
参考文档:
yum -y install gcc-c++ tcl
tar xvzf redis-2.8.3.tar.gz -C /usr/local/
cd /usr/local/redis-2.8.3/
make
(若失败运行make distclean,然后make MALLOC=libc)
成功后:make test
然后:make install(拷贝编译好的文件到/usr/local/bin/)
mkdir /etc/redis; mkdir -pv /var/redis/{log,run,6379,sentinel}
!!!!不要安装3.2.0 3.2.1等高版本,sentinel bug多,无法正常failover !!!!
=====================================================================================
主redis:
port 6379
daemonize yes
bind 0.0.0.0
logfile "/var/redis/log/sentinel.log"
pidfile "/var/run/redis.pid"
dir "/var/redis/6379"
slave-read-only yes
appendonly no
从redis:
port 6379
daemonize yes
bind 0.0.0.0
logfile "/var/redis/log/sentinel.log"
pidfile "/var/run/redis.pid"
dir "/var/redis/6379"
slave-read-only yes
appendonly no
slaveof 192.168.16.121 6379
哨兵:
port 26379
daemonize yes
dir "/var/redis/sentinel/
logfile "/var/redis/log/sentinel.log"
sentinel monitor mymaster 192.168.16.121 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel parallel-syncs mymaster 1
开机启动:
redis-server /etc/redis/redis.conf 启动redis服务
redis-server /etc/redis/sentinel.conf --sentinel 启动哨兵
常用命令:
redis-cli -p 6379 进入redis命令行
redis-cli -p 26379 进入sentinel命令行
进入命令行后用info在命令行下查看各信息
redis-cli -p 6379 DEBUG sleep 30 测试server下线30秒的高可用情况
============================================================================
构架图:
+----+
| M1 |
| S1 |
+----+
|
+----+ | +----+
| R2 |----+----| R3 |
| S2 | | S3 |
+----+ +----+
Masters are called M1, M2, M3, ..., Mn.
Slaves are called R1, R2, R3, ..., Rn (R stands for replica).
Sentinels are called S1, S2, S3, ..., Sn.
M1:ip=192.168.16.121,port=6379
R2:ip=192.168.16.122,port=6379
R3:ip=192.168.16.123,port=6379
3.redis服务端常用命令
redis开启:/usr/redis/src/redis-server /usr/redis/redis.conf
redis关闭:/usr/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown
redis状态查看:/usr/redis/src/redis-cli