一、Redis介绍
Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,Redis支持各种不同方式的排序。
和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,实现数据的持久化。
二、Redis的安装
下面介绍在Linux环境下,Redis的安装与部署
step1:创建目录,并下载安装包到本地:(3.0.7稳定版)
step2:解压
step3:执行make 对redis解压后文件进行编译
这里如果编译出错,报“cc 未找到命令”的提示错误,则是缺少gcc,需要先安装上gcc (命令:yum -y install gcc automake autoconf libtool make)。
编译完成之后,可以看到解压文件redis-3.0.7 中会有对应的src、conf等文件夹,这和windows下安装解压的文件一样,大部分安装包都会有对应的类文件、配置文件和一些命令文件。
step4:进入src文件夹,执行make install进行redis安装
至此,安装完成!
三、Redis的部署
安装成功后,下面对redis 进行部署
step1:首先为了方便管理,将redis文件中的conf配置文件和常用命令移动到统一文件中
a)创建bin和etc文件夹
代码如下:
mkdir -p /usr/local/redis/bin mkdir -p /usr/local/redis/ett
b)执行Linux文件移动命令:
复制代码代码如下:
[root@hadoop-1 redis]# mv redis.conf etc/ [root@hadoop-1 redis]# cd src/ [root@hadoop-1 src]# mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server /usr/local/redis/bin
step2:后台启动redis服务
a) 切换到/usr/local/redis/etc目录,编辑redis.conf文件,将daemonize属性改为yes(表明需要在后台运行)
#vim redis.conf
b)切换到/usr/local/redis/bin目录下执行redis-server 命令,使用/usr/local/redis/etc/redis.conf 配置文件来启动Redis 服务
[root@hadoop-1 redis]# cd bin/ [root@hadoop-1 bin]# ls mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server [root@hadoop-1 bin]# ./redis-server /usr/local/redis/etc/redis.conf
step3:服务端启动成功后,执行redis-cli启动redis 客户端,查看端口号,默认是6379。
step4:编辑服务启动脚本 # vim /etc/init.d/redis 将下面的内容复制进去
#!/bin/sh # # redis Startup script for Redis Server # # chkconfig: - 80 12 # description: Redis is an open source, advanced key-value store. # # processname: redis-server # config: /usr/local/redis/etc/redis.conf # pidfile: /var/run/redis.pid source /etc/init.d/functions BIN="/usr/local/redis/bin" CONFIG="/usr/local/redis/etc/redis.conf" PIDFILE="/var/run/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
保存,退出后执行下面的命令:
# chmod +x /etc/init.d/redis # service redis start # service redis stop # chkconfig --add redis
step5:设置环境变量,并使之生效 # vim /etc/profile.d/redis.sh
export REDIS_HOME=/usr/local/redis export PATH=$PATH:$REDIS_HOME/bin
执行命令,是配置生效:# source /etc/profile.d/redis.sh
step6:配置下面的内核参数,否则redis脚本在重启或停止redis时,将会报错,并且不能自动在停止服务前同步数据到磁盘上/etc/sysctl.conf加上
#vim /etc/sysctl.conf
vm.overcommit_memory = 1
#sysctl -p
文章参考,并做改动。