您的位置:首页 > 数据库 > Redis

centOs 安装redis,集群

2015-06-09 16:37 761 查看
1、[root@localhostliu]#wgethttp://download.redis.io/redis-2.8.21.tar.gz
或者wgethttp://download.redis.io/releases/redis-3.0.2.tar.gz
2、解压tar-zxvfredis-stable.tar.gz

3、查看是否安装了tclrpm-qa|greptcl

没有则进行安装yum
install-ytcl

4、进入解压后的目录,make

成功后,

运行maketest保证没有错误

5、运行makeinstall

会把redis-benchmarkredis-check-aofredis-check-dumpredis-cliredis-sentinelredis-server

复制到usr/local/bin目录下

6、复制配置文件到/etc目录下cpredis.conf/etc

5和6也可以替换为

{这边就不makeinstall了,直接使用make好的文件

usr/local/下创建redis文件夹,复制可执行文件6个到目录bin,配置到etc

[root@localhostlocal]#mkdir-predis/{etc,bin,var}

下面配置文件路径则为新的路径

}

7、自己建立init.d脚本进入、/etc/init.d/目录,建立新的redis文件

内容如下

###########################
#chkconfig:23451090
#description:StartandStopredis
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis.pid
CONF="/etc/redis.conf"
case"$1"in
start)
if[-f$PIDFILE]
then
echo"$PIDFILEexists,processisalreadyrunningorcrashed"
else
echo"StartingRedisserver..."
$EXEC$CONF
fi
if["$?"="0"]
then
echo"Redisisrunning..."
fi
;;
stop)
if[!-f$PIDFILE]
then
echo"$PIDFILEdoesnotexist,processisnotrunning"
else
PID=$(cat$PIDFILE)
echo"Stopping..."
$REDIS_CLI-p$REDISPORTSHUTDOWN
while[-x${PIDFILE}]
do
echo"WaitingforRedistoshutdown..."
sleep1
done
echo"Redisstopped"
fi
;;
restart|force-reload)
${0}stop
${0}start
;;
*)
echo"Usage:/etc/init.d/redis{start|stop|restart|force-reload}">&2
exit1
esac
##############################


保存,退出

修改权限chmod+x/etc/init.d/redis

设置开机启动chkconfigredison//这是失败的话,先把配置文件yes改为no,设置了开机启动,再改配置文件

编辑配置文件vimredis.conf

daemonizeno改为yes#是否后台运行
port6379改为12002#端口
dir./改为dir/data/redis_data或者/www/redis_12002/
#数据目录

启动服务:serviceredisstart

停止服务:serviceredisstop

配置防火墙打开对应的端口:
vi/etc/sysconfig/iptables
-AINPUT-mstate--stateNEW-mtcp-ptcp--dport6379-jACCEPT
重启防火墙
serviceiptablesrestart

集群主从配置

Redis主从复制中一个主服务可以有多个从服务,一个从服务可以有多个从服务。
配置比较简单,只需要更改redis.conf文件中的slaveof参数配置即可。
从服务器slaveof参数的格式如:slaveof<masterip><masterport>
如果master服务器设置有密码则需要配置masterauth参数。
masterauth参数格式如:masterauth<master-password>




例如

主服务器(192.168.10.16:6379)配置文件

添加

requirepassliubo

bind192.168.10.16

从服务器(192.168.10.25:6379)配置文件

slaveof192.168.10.166379//主服务器的ip,端口
masterauthliubo

bind192.168.10.25

从服务其的写功能是默认被关闭的,也不建议向从服务器写数据的。

可以在应用中将Redis数据库的客户端读写进行合理的分离。

以使用keepalive来实现主的故障转移功能

Noroutetohost可以暂时关闭防火墙serviceiptablesstop

客户端远程连接

用法:redis-cli[OPTIONS][cmd[arg[arg...]]]
-h<主机ip>,默认是127.0.0.1
-p<端口>,默认是6379
-a<密码>,如果redis加锁,需要传递密码
--help,显示帮助信息
通过对rendis-cli用法介绍,在101上连接103应该很简单:

[root@xsf001~]#redis-cli-h192.168.1.103-p6379
redis192.168.1.103:6379>
在101上对103设置个个string值user.1.name=zhangsan

redis192.168.1.103:6379>setuser.1.namezhangsan
OK
看到ok,表明设置成功了。然后直接在103上登陆,看能不能获取到这个值。


测试是否已启动
#/usr/local/bin/redis-cliping

性能测试
#/usr/local/bin/redis-benchmark

关闭服务
#/usr/local/bin/redis-cli-p6379shutdown

强制刷新数据到磁盘【Redis默认是异步写入磁盘的】
#/usr/local/bin/redis-cli-p6379save

如果出现异常

异常一:

make[2]:cc:Commandnotfound

异常原因:没有安装gcc

解决方案:yuminstallgcc-c++

异常二:

zmalloc.h:51:31:error:jemalloc/jemalloc.h:Nosuchfileordirectory

异常原因:一些编译依赖或原来编译遗留出现的问题

解决方案:makedistclean。清理一下,然后再make。

在make成功以后,需要maketest。在maketest出现异常。

异常一:

couldn'texecute"tclsh8.5":nosuchfileordirectory

异常原因:没有安装tcl

解决方案:yuminstall-ytcl

daemonize:是否以后台daemon方式运行
pidfile:pid文件位置
port:监听的端口号
timeout:请求超时时间
loglevel:log信息级别
logfile:log文件位置
databases:开启数据库的数量
save**:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
rdbcompression:是否使用压缩
dbfilename:数据快照文件名(只是文件名,不包括目录)
dir:数据快照的保存目录(这个是目录)
appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: