当前位置:Gxlcms > mysql > Redis研究(二)—准备

Redis研究(二)—准备

时间:2021-07-01 10:21:17 帮助过:18人阅读

一.安装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实例会额外占用很多内存。

人气教程排行