首页 > 代码库 > Redis研究(二)—准备

Redis研究(二)—准备

 一.安装Redis

安装Redis请看这里:http://blog.csdn.net/wtyvhreal/article/details/40980167


二.启动和停止Redis

Redis可执行文件说明:

redis-server             Redis服务器

redis-cli                    Redis命令行客户端

redis-benchmark   Redis性能测试工具

redis-check-aof      AOF文件修复工具

redis-check-dump RDB文件检查工具


启动Redis有直接启动和通过初始化脚本启动两种方式,分别适用于开发环境和生产环境。

2.1 直接启动

开发环境中推荐使用此方法运行。

redis-server
服务器默认使用6379端口(6379手机键盘上MERZ对应的数字,MERZ是一名意大利歌女的名字),通过--port参数可以自定义端口号

redis-server --port 6380


2.2 通过初始化脚本启动Redis

在linux系统中可以通过初始化脚本启动Redis,使得Redis能随着系统自动运行,在生产环境中推荐使用此方法运行(学生练习一般不用)。

我们需要配置Redis的运行方式和持久化文件,日志文件的存储位置等,具体步骤:

(1)配置初始化脚本:

  在Redis源代码目录中的utils文件中有个名为redis_init_script的初始化脚本文件,首先将这个文件复制到/etc/init.d目录中,文件名redis_端口号,客户端通过该端口号连接Redis,然后修改脚本文件第6行的REDISPORT变量的值为同样的端口号。

(2)建立需要的文件夹:

 /etc/redis      存放Redis的配置文件

 /var/redis/端口号  存放Redis的持久化文件

(3)修改配置文件:

将配置文件复制到/etc/redis目录中,以端口号命名(6379.conf),然后按照下面对其中的部分参数进行编辑

daemonize         yes                                              使Redis以守护进程模式运行

pidfile                  /var/run/redis_端口号.pid        设置Redis的PID文件位置

port                     端口号                                          设置Redis监听的端口号

dir                       /var/redis/端口号                         设置持久化文件存放位置


现在可以使用下面命令来启动Redis了,

/etc/init.d/redis_端口号 start
然后需要执行下面使Redis随系统自动启动

sudo update-rc.d redis_端口号 defaults

2.3 停止Redis
停止Redis时有可能正在将内存中的数据同步到硬盘中,强行终止 Redis进程可能导致数据丢失。正确停止方式是向Redis发送SHUTDOWN命令。Redis收到SHUTDOWN命令后,会先断开所有客户端连接,然后根据配置执行持久化,最后完成退出。

redis-cli SHUTDOWN

Redis可以处理SIGTERM信号,所以使用kill Redis 进程的PID 也可以正常技术Redis,效果与发送SHUTDOWN命令一样。


三.Redis命令行客户端

3.1 发送命令

(1)第一种方式,将命令作为redis-cli的参数执行

redis-cli -h 127.0.0.1 -p 6379

通过-h和-p参数可以自定义地址和端口号

(2)第二种方式,不带参数运行redis-cli,会进入交互模式,可以自由输入命令



3.2命令返回值

1.状态回复

直接显示状态信息


2.错误回复

错误回复以(error)开头,并在后面加上错误信息


3.整数回复

以integer开始,并在后面跟上整数数据


4.字符串回复

bulk reply请求键值时就可以得到一个字符串回复


5.多行字符串回复



四.Redis多数据库

Redis中每个数据库对外都是一个从0开始的递增数字命名,Redis默认支持16个数据库,可以通过配置参数databases来修改这一数字。客户端与Redis建立连接后会自动选择0号数据库,不过可以随时使用SELECT命令更换数据库。

Redis不支持为每个数据量库设置不同的访问密码,所以一个客户端要么可以访问全部数据库,要么连一个数据库也没有权限访问。最重要的一点是多个数据库之间并不是完全隔离的,比如说FLUSHALL命令可以清空一个Redis实例中所有数据库中的数据。

所以这些数据库更像是一种命令空间,而不适宜存储不同应用程序的数据。

不同的应用应该使用不同的Redis实例存储数据。


由于Redis非常轻量级,一个空Redis实例占用的内存只有1MB左右,所以不用担心多个Redis实例会额外占用很多内存。

Redis研究(二)—准备