redis简介以及linux上的安装(一)
redis简介以及linux上的安装redis简介
redis是NoSQL(No Only
SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据。当前主流的分布式缓存技术有redis,memcached,ssdb,mongodb等。既可以把redis理解为理解为缓存技术,因为它的数据都是缓存在内从中的;也可以理解为数据库,因为redis可以周期性的将数据写入磁盘或者把操作追加到记录文件中。而我个人更倾向理解为缓存技术,因为当今互联网应用业务复杂、高并发、大数据的特性,正是各种缓存技术引入最终目的。
关于redis与传统关系型数据的对比、redis与memcached的对比、redis的优缺点,在此将不介绍,因为都各有各的好处,只有结合了具体的业务场景,才能深刻体会它们之间的差别和优缺点。下面开始redis在linux上的安装。
一.linux下安装redis
下载redis安装包
下载地址:http://redis.io/ 编译源程序
# tar zxvf redis-3.2.0.tar.gz
# cd redis-3.2.0
# make
编译完成之后,在src目录下有2个重要程序生成,一个是redis-server,另一个是redis-cli;
接着进入src目录,执行make
install
# cd src && make install创建目录存放redis命令和配置文件
# mkdir -p /usr/local/redis/bin
# mkdir -p /usr/local/redis/etc
移动文件
# mv redis.conf /usr/local/redis/etc
# cd src
# mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel redis-trib.rb /usr/local/redis/bin
至此安装redis的工作就完成了。
我们来看看编译出来的几个程序分别是干什么的:
redis-server:顾名思义,redis服务
redis-cli:redis client,提供一个redis客户端,以供连接到redis服务,进行增删改查等操作
redis-sentinel:redis实例的监控管理、通知和实例失效备援服务
redis-benchmark:redis的性能测试工具
redis-check-aof:若以AOF方式的持久化,当意外发生时用来快速修复
redis-check-rdb:若以RDB方式的持久化,当意外发生时用来快速修复
启动redis服务
# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 如上,启动redis服务需要指定配置文件的,后台启动的话需要修改redis.conf文件,daemonize no ---- >daemonize yes。redis服务端默认链接端口是6379,最好也将IP绑定为本机IP。
验证是否启动成功
# ps -ef | grep redis
#或者
# netstat -tunpl | grep 6379
客户端连接
# /usr/local/redis/bin/redis-cli -h 192.168.2.128 -p 6379
192.168.2.128:6379> info
# Server
redis_version:3.2.0
redis_git_sha1:00000000
...
上面的IP可以改为自己的127.0.0.1
停止redis服务
# /usr/local/redis/bin/redis-cli shutdown
#或者
# pkill redis-server
Redis在linux上的安装已经完成。
二. 配置自启动
为了让redis-server能在系统启动时自动运行,需要将redis服务作为守护进程(daemon)来运行,我们回到/usr/redis/目录中找到一个redis.conf的文件,这个文件是redis服务运行时加载的配置,我们先观察一下其中的内容
# vi redis.conf 此文件内容非常长,但是大部分是注释,我们重点关注其中的几个设置daemonize和pidfile:
其中daemonize默认值是false,pidfile默认值是pidfile /var/run/redis_6379.pid
第一个表示是否daemon化,显然我们要把它改成daemonize yes;
第二个表示当服务以守护进程方式运行时,redis默认会把pid写入/var/run/redis_6379.pid文件,服务运行中该文件就存在,服务一旦停止该文件就自动删除,因而可以用来判断redis是否正在运行。
保存后退出。
有了基本配置,redis还需要有一个管理启动、关闭、重启的一个脚本。redis源码里其实已经提供了一个初始化脚本,位置在/usr/redis/utils/redis_init_script。
我们来看看这个脚本做了些什么:
#!/bin/sh#
REDISPORT=6379EXEC=/usr/local/bin/redis-serverCLIEXEC=/usr/local/bin/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"case "$1" in
start) if [ -f $PIDFILE ] then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF fi
;;
stop) if [ ! -f $PIDFILE ] then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE) echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;; *) echo "Please use start or stop as first argument"
;;esac
脚本中指定了端口、server路径、cli路径、pidfile路径以及conf路径,上述标黄的地方都需要正确配置,多说一句,如果在安装时执行了makeinstall,那么这里的脚本不需要做多大改动,因为make install把server和cli都拷到/usr/local/bin下面了。
另外看到这里conf的路径,我们需要把redis目录下的redis.conf文件拷贝到/etc/redis/6379.conf
# cd /etc
# mkdir redis
# cp /usr/redis/redis.conf /etc/redis/6379.conf
接着将redis_init_script脚本拷贝到/etc/init.d/redisd
# cp /usr/redis/utils/redis_init_script /etc/init.d/redisd 在/etc/init.d下的脚本都是可以在系统启动是自动启动的服务,而现在还缺一个系统启动时的配置:
# chkconfig redisd on 然后就会发现报了一个错误:服务 redisd 不支持 chkconfig ?
参考这篇文章, 这是因为我们需要在redis_init_script的开头加一个小改动:
#!/bin/sh
# chkconfig:
# description: Redis is a persistent key-value database
至于这里2345 90 10分别代表什么意思,请参考上面的文章链接。
保存完重新拷贝到/etc/init.d/redisd后,再运行chkconfig就完成了。
一切就绪之后,可以执行以下命令检验service是否设置成功:
# service redisd start
# service redisd stop
等价于
# /etc/init.d/redisd start
# /etc/init.d/redisd stop
最后重启一下系统吧,进入系统之后直接运行redis-cli检验redis服务是否已经自动运行了。
本文转载自:
http://blog.csdn.net/haihaa/article/details/77749906
页:
[1]