redis研究与探索(一)-安装部署

redis的官网对其定位如下:

redis是一个开源(BSD许可)内存数据存储,可用作数据库、高速缓存和消息队列代理。其支持字符串、哈希、

列表、集合、分类查询有序集合、位图、hyperloglogs等数据类型,内置复制、Lua脚本、LRU收回、事务以及

不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。

为了了解其如何使用,甚至了解其运作机制,今天开始研究。

1、下载redis tar

在Redis 官网(http://redis.io/)下载tar包文件,位置如下图:

redis研究与探索(一)-安装部署_第1张图片

下载完成后,因为是源码,拷贝到/usr/local/src目录下。

2、建立安装目录

# mkdir /usr/local/redis  

3、执行安装

# cd /usr/local/src

# tar xzf redis-2.6.14.tar.gz   

# ln -s redis-2.6.14 redis    #建立一个链接   

# cd redis  

# make PREFIX=/usr/local/redis install   #PREFIX是指将程序安装到指定目录

安装完成后,在安装目录(这里是/usr/local/redis)下会生成一个bin目录,包括以下文件:

redis-benchmark redis-check-aof redis-check-dump  redis-cli  redis-server redis-sentinel

其中:

redis-server:Redis服务器的daemon启动程序。

redis-cli:Redis命令行操作工具。也可以用telnet利用其支持的纯文本协议来操作。

redis-benchmark:Redis性能测试工具,测试Redis在当前的系统及配置下的读写性能。

redis-dump:用于修复出问题的dump.rdb文件。

redis-check-aof:用于修复出问题的AOF文件。

redis-rentinel:Redis的集群管理。

4、启动redis(当前利用的是redis默认配置)

cd /usr/local/redis/bin

./redis-server

redis研究与探索(一)-安装部署_第2张图片

显示启动成功,用检查进程命令查看一下:

ps –ef |grep redis

5、简单实验

打开redis命令行,向redis作个简单的数据写和读实验,验证是否正常。

进入redis目录:cd /usr/local/redis/bin

执行./redis-cli,进入redis命令行工具:

由于是新安装,用keys命令查看,可以看到redis中没有任何数据:

用set命令写入一个K/V对:

用get命令读刚才写入的键值:

以上说明redis已经正常运行,可以提供服务了。

6、配置Redis为Linux服务

为了在每次系统启动时,redis均自动启动,可以将redis配置为linux系统服务,Redis提供了一个脚本,位置在上面“执行安装”步骤中,在/usr/local/src/redis下生成的utils目录下,名字为redis_init_script,其内容如下:

将其拷贝到/etc/init.d目录下:

cp /usr/local/src/redis/utils/redis_init_script/etc/init.d

由于在此脚本中没有加入chkconfig所需参数,因此需要在此脚本中加入以下内容:

#chkconfig redis 2345 70 60 

其中2345指的是Linux运行级别,7060 指的是启动、关闭顺序,数值越小越优先启动和关闭。

在脚本中,定义了Redis守护进程启动程序redis-server、 命令行程序redis-cli的全路径,由于脚本中这两个路径与我们实际不同,需要修改为实际目录即:

EXEC=/usr/local/redis/bin/redis-server

CLIEXEC=/usr/local/redis/bin/redis-cli

另外脚本中指定了启动时的配置文件,路径为CONF="/etc/redis/${REDISPORT}.conf"

其中${REDISPORT}是获取REDIDPORT变量的值,在此文件中定义为6379,因此先需要在/etc目录下建立redis目录,在将redis自带的配置问拷贝到这里。

cd /etc/redis

cp  /usr/local/src/redis/redis.conf6379.conf

在上述配置完成后,可以用命令service redis start 启动服务了。

但是在使用service redis stop 时会提示找不到pid文件,无法关闭服务的信息,是何原因呢?主要是以下两个因素:

(1)redis默认情况下不作为linux守护进程(daemon)执行,由于linux只有程序在以守护进程执行时才能生成pid文件。

(2)既使以守护进程方式运行,redis的默认pid名称为redis.pid,而非上面脚本中定义的redis_端口号.pid,所有在上面的脚本中执行stop时,也找不到pid文件。

解决方式为修改启动时所用的配置文件,即/etc/redis/6379.conf,具体如下:

redis研究与探索(一)-安装部署_第3张图片

即:将daemonize 后面的no 改成yes

将pidfile 后面的/var/run/redis.pid 改为redis_6379.pid

其实在上面的脚本中也指定了pid文件名称,但是不知为何没发生作用,待研究。

你可能感兴趣的:(redis,内存数据库)