Home  >  Article  >  Database  >  Redis研究(二)—准备

Redis研究(二)—准备

WBOY
WBOYOriginal
2016-06-07 16:12:131025browse

一.安装Redis 安装Redis请看这里:http://www.2cto.com/os/201411/348380.html 二.启动和停止Redis Redis可执行文件说明: redis-server Redis服务器 redis-cli Redis命令行客户端 redis-benchmark Redis性能测试工具 redis-check-aof AOF文件修复工具 redis

一.安装Redis

安装Redis请看这里:http://www.2cto.com/os/201411/348380.html

二.启动和停止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实例会额外占用很多内存。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn