1:下载redis
下载地址 http://download.redis.io/releases/redis-3.0.2.tar.gz
2:安装redis
下载后解压 tar zxvf redis-3.0.2.tar.gz 到任意目录,例如/usr/local/redis-3.0.2
yum groupinstall 开发工具 -y
yum install tcl -y #安装tcl,在make时直接将命令放到了/usr/bin下
cd /usr/local/redis-3.0.2.tar.gz #解压后,进入redis目录
make #不用./configure,直接执行make即可。默认安装到/usr/local下(不管在哪解压)
注:如果没有安装tcl,在make完后会提示Hint: To run 'make test' is a good idea ;其实不测试,一般也可以用。但是要执行make test则必须安装tcl。
3:拷贝文件
cp redis.conf /etc/ #将启动的配置文件拷到某个路径下(不拷也可以)
cp redis-benchmark redis-cli redis-server /usr/bin/ #将命拷到PATH路径下,可在任意地方执行
注:如果前面安装了tcl,则不用将命令拷贝到PATH路径下了
4:编辑配置文件
vim /etc/redis.conf #公司的主要配置
主要内容如下:
daemonize yes #设置redis进程为后台守护进程,默认为no
port 6379 #默认为6379
dbfilename dump.rdb #在redis.conf所在的路径下
dir ./ #用命令config get dir即可查询到该redis目录
bind x.x.x.x #监听的ip,内网外网都可以,内网较安全,默认为本机(可以绑定多个,接着写就行了)
5:设置内存分配策略(可选,根据服务器的实际情况进行设置)
vim /etc/sysctl.conf
添加:vm.overcommit_memory=1 # 如果内存情况比较紧张的话,需要设定内核参数
或:echo 1 > /proc/sys/vm/overcommit_memory
注:内核参数说明如下:
overcommit_memory文件指定了内核针对内存分配的策略,其值可以是0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给 应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存 6:开启防火墙
vim /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
service iptables restart #重启
7:启动redis服务
redis-server /etc/redis.conf #因为已经将该命令加入PATH,所以任何地方都可使用。
ps -ef | grep redis #查看进程,确认redis已经启动
root 401 29222 0 18:06 pts/3 00:00:00 grep redis
root 29258 1 0 16:23 ? 00:00:00 redis-server /etc/redis.conf
注:如果这里启动redis服务失败,一般情况下是因为redis.conf文件有问题,建议检查或找个可用的配置文件进行覆盖,避免少走弯路,这里建议,修改redis.conf,设置redis进程为后台守护进程
8:测试redis
[iyunv@Architect redis-1.2.6]#pgrep -lf redis
14934 redis-server 10.253.101.2:6379
[iyunv@Architect redis-1.2.6]# redis-cli #redis-cli -h ip -p 端口号
redis> set name songbin #建值
OK
redis> get name #获得内容
"songbin"
redis > SELECT 0 #redis默认有16个库,用select来切换
OK
redis > SELECT 1
OK
redis > SELECT 0
OK
redis > keys * #查看所有建值
1) "app_id"
2) "u_6039"
3) "u_6037"
4) "u_6035"
5) "u_6033"
redis > hgetall u_6039 #查看某个
1) "app_id"
2) "9999"
3) "school"
4) "1141"
redis > exit
10:关闭redis服务
法一:使用命令
redis-cli shutdown
注:redis服务关闭后,缓存数据会自动dump到硬盘上,硬盘地址为redis.conf中的配置项dbfilename dump.rdb所设定
强制备份数据到磁盘,使用如下命令:redis-cli save 或者 redis-cli -p 6380 save(指定端口)
法二:使用脚本
vim /etc/init.d/redis
#!/bin/bash
#
# redis - this script starts and stops the redis-server daemon
#
# chkconfig: - 80 12
# description: Redis is a persistent key-value database
# processname: redis-server
# config: /usr/local/redis/etc/redis.conf
# pidfile: /usr/local/redis/var/redis.pid
source /etc/init.d/functions
BIN="/usr/local/bin" #安装路径
CONFIG="/etc/redis.conf"
PIDFILE="/usr/local/redis/var/redis.pid"
### Read configuration
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"
RETVAL=0
prog="redis-server"
desc="Redis Server"
start() {
if [ -e $PIDFILE ];then
echo "$desc already running...."
exit 1
fi
echo -n $"Starting $desc: "
daemon $BIN/$prog $CONFIG
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $"Stop $desc: "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE
return $RETVAL
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
[ -e /var/lock/subsys/$prog ] && restart
RETVAL=$?
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
RETVAL=1
esac
exit $RETVAL
service redis start #启动服务
|