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
一.安装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实例会额外占用很多内存。
推荐阅读
-
详解Spring boot使用Redis集群替换mybatis二级缓存
-
Android 第三方应用接入微信平台研究情况分享(二)
-
Android 第三方应用接入微信平台研究情况分享(二)
-
redis与ssm整合方法(mybatis二级缓存)
-
SpringBoot+Mybatis项目使用Redis做Mybatis的二级缓存的方法
-
springboot+mybatis+redis 二级缓存问题实例详解
-
C# Redis学习系列(二)Redis基本设置
-
完整SpringBoot Cache整合redis缓存(二)
-
redis 主从复制和哨兵模式(二)
-
docker-compose一键部署redis一主二从三哨兵模式(含密码,数据持久化)