redis的简单安装配置
一、简介
-
Redis是一种高级key-value数据库,数据可以持久化,支持的数据类型很丰富,有字符串,哈希,链表,集合和有序集合5种数据类型
-
Redis支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能,所以Redis也可以被看成是一个数据结构服务器
-
Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(半持久化模式);也可以把每一次数据变化都写入到一个append only file(aof)里面(全持久化模式)
二、Redis安装
安装tclsh
Redis在make test有使用到tclsh对Redis进行测试,所有需要想将tclsh安装好,如果没有安装的话,在make test过程中会出现如下错误:
[root@dev ~]# wget http://hivelocity.dl.sourceforge.net/project/tcl/Tcl/8.5.14/tcl8.5.14-src.tar.gz [root@dev ~]# tar xzvf tcl8.5.14-src.tar.gz [root@dev ~]# cd tcl8.5.14-src/unix #windows进入tcl8.5.14-src/win [root@dev ~]# ./configure --prefix=/app/soft/tcl8.5.11 --enable-64bit #enable-64bit对64系统生效 [root@dev ~]# make && make install
安装完成之后需要将tclsh添加到PATH中,并使其生效
[root@dev ~]# vim /etc/profile ··· PATH=/app/soft/tcl8.5.11/bin:$PATH export PATH ··· [root@dev ~]# source /etc/profile
安装Redis
[root@dev ~]# cd /usr/loca/src [root@dev ~]# wget http://download.redis.io/releases/redis-3.0.6.tar.gz [root@dev ~]# tar xzvf redis-3.0.6.tar.gz [root@dev ~]# cd redis-3.0.6 [root@dev ~]# make [root@dev ~]# make test #检查Redis是否已经make成功,这个步骤可以省略,不过建议还是使用 [root@dev ~]# make PREFIX=/usr/local/redis install #默认安装路径:/usr/local
三、配置Redis
Redis.conf
[root@dev ~]# cat redis.conf|grep -v ^# daemonize yes #开启守护进程 pidfile /var/run/redis.pid #设置PID文件 port 6579 #设置Redis端口 timeout 300 tcp-keepalive 0 loglevel verbose #设置日志级别 syslog-enabled yes #开启syslog syslog-ident redis #设置Redis在syslog里面的标识符 syslog-facility local6 #设置Redis在syslog使用的设备 databases 5 save 900 1 #Redis硬盘数据保存设置 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb #Redis数据保存文件 dir ./ #Redis数据保存目录 slaveof 183.232.10.64 6579 #开启主从同步,设置Master的IP及端口 masterauth Dmx#xYkJ0Z8 #设置主从同步密码 slave-serve-stale-data yes slave-read-only yes repl-disable-tcp-nodelay no slave-priority 100 requirepass Dmx#xYkJ0Z8 #设置Redis认证密码 maxclients 10000 #设置客户端连接数 maxmemory 512M #设置内容大小 appendonly no #设置是否开启AOF模式 appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 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 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日志是通过syslog来统一管理的,然后再通过logrotate来进行日志轮循,具体配置如下:
##syslog配置
[root@dev ~]# cat /etc/syslog.conf
···
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;redis.none /var/log/messages
#redis.none去除Redis的日志输出到message
···
# Save redis messages also to redis.log
local6.* /var/log/redis.log
#设置Redis日志输入到/var/log/redis.log文件
···
##logrotate配置
[root@dev ~]# cat /etc/logrotate.d/redis
/var/log/redis.log {
missingok
weekly
notifempty
rotate 15
size 200M
sharedscripts
postrotate
/usr/bin/killall -HUP syslogd
endscript
}
logrotate配置文档的意思为:每周检查一次Redis日志文件,大小超过200M就轮循一次,保存15个轮循日志文件。
内核设置
因为Redis需要使用到内存,所有最好配置一个内核参数,否则有可能会报警,具体如下:
[root@dev ~]# cat /etc/sysctl.conf ··· vm.overcommit_memory = 1 #指定内核针对内存分配的策略,其值可以是0,1,2 ··· # 0 → 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 # 1 → 表示内核允许分配所有的物理内存,而不管当前的内存状态如何 # 2 → 表示内核允许分配超过所有物理内存和交换空间总和的内存 # sysctl -p
四、Redis启动与关闭
启动脚本
#!/bin/sh
#
# redis - this script starts and stops the redis-server daemon
#
# chkconfig: - 85 15
# description: Redis is a persistent key-value database
# processname: redis-server
# config: /etc/redis/redis.conf
# config: /etc/sysconfig/redis
# pidfile: /var/run/redis.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
source /etc/init.d/functions
redis="/usr/local/redis/src/redis-server"
prog=$(basename $redis)
REDIS_CONF_FILE="/usr/local/redis/redis.conf"
PIDFILE="/var/run/redis.pid"
[ -f /etc/sysconfig/redis ] && . /etc/sysconfig/redis
lockfile=/var/lock/subsys/redis
start() {
if [ -e $PIDFILE ];then
echo "$desc already running...."
exit 1
fi
echo -n $"Starting $prog: "
daemon $redis $REDIS_CONF_FILE
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE
return $retval
}
restart() {
stop
start
}
reload() {
echo -n $"Reloading $prog: "
killproc $redis -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
exit 2
esac
五、Redis服务验证
./redis-cli 登录,然后再通过ping、info、命令查看redis情况,具体示例如下:
[root@dev ~]# ./redis-cli -h localhost -p 6579 -a password redis localhost:6579> info
- 作者:踏雪无痕
- 出处:http://www.cnblogs.com/chenpingzhao/
- 本文版权归作者和博客园共有,如需转载,请联系 pingzhao1990#163.com

浙公网安备 33010602011771号