Redis 学习笔记(一)
Redis是一个开源的、高性能的、基于键值对的缓存与存储系统,Redis是REmote DIctionary Server(远程字典服务器)的缩写。
1. 下载安装
wget http://download.redis.io/redis-stable.tar.gz //下载,拷贝到/usr/local写
tar -xzvf redis-stable.tar.gz //解压
cd redis-stable //进入解压目录
make //编译安装
make install //将可执行程序赋值到/usr/local/bin目录中,当执行程序中就不要输入完整的路径
make test //测试redis是否编译正确
2. 启动和停止Redis
在执行完make install命令后,在/usr/local/bin 目录下就会生成可执行文件
文件名 | 说明 |
---|---|
redis-server | Redis服务器 |
redis-cli | Redis命令行客户端 |
redis-benchmark | Redis性能测试工具 |
redis-check-aof | AOF文件修复工具 |
redis-check-rdb | RDB文件检查工具 |
redis-sentinel | Sentinel服务器 |
2.1 启动Redis
- 直接启动(开发环境)
直接运行redis-server即可启动redis
启动界面有如下信息:
Redis 3.2.8 (00000000/0) 64 bit
Running in standalone mode //单机运行模式
Port: 6379 //端口号6379
PID: 15448 //进程PID15448
通过–port 加端口号来自定义端口号
通过初始化脚本启动(生产环境)
- 配置初始化脚本。将redis源码目录下的utils目录中的
redis_init_script
初始化脚本拷贝到/etc/init.d
,修改文件名为redis_6379。 建立目录。
- /etc/redis:存放redis的配置文件
- /var/redis/6379:存放redis的持久化文件
修改配置文件。 将源代码文件中的redis.conf复制到/etc/redis目录中,命名为6379.conf,修改如下
参数 值 说明 daemonize yes redis以守护进程模式运行 pidfile /var/run/redis_6379.pid 设置redis的PID文件位置 port 端口号 设置redis监听的端口号 dir /var/redis/6379 设置持久化文件存放位置 使用/etc/init.d/redis_6379 start启动redis,执行
sudo update-rc.d redis_6379 defaults
命令使其开机自启
如果出现insserv: warning: script ‘redis6379′ missing LSB tags and overrides
的报错,则在/etc/init.d/redis_6379
文件中添加如下:
- 配置初始化脚本。将redis源码目录下的utils目录中的
### BEGIN INIT INFO
# Provides: redis6379
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: redis6379
# Description: penavico redis 6379
### END INIT INFO
然后在执行sudo update-rc.d redis_6379 defaults
命令使其开机自启,执行service redis_6379 start
启动服务,检查服务是否启动sudo lsof -i:6379
,启动成功如下:
➜ redis sudo lsof -i:6379
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
redis-ser 16316 root 4u IPv4 189448 0t0 TCP localhost:6379 (LISTEN)
2.3 停止redis
强行终止redis进程会导致数据丢失,因此应该正确停止redis,发送命令:
redis-cli SHUTDOWN
或者使用kill
命令结束redis进程,效果同上。
3. 命令返回值
- 状态回复:直接返回状态信息,包括PING命令
127.0.0.1:6379> PING
PONG
127.0.0.1:6379> SET 'test' 1
OK
- 错误回复:以(errno)开头并且跟上错误信息
127.0.0.1:6379> TESTERR
(error) ERR unknown command 'TESTERR'
- 整数回复:以(integer)开头并且跟上整数数据
127.0.0.1:6379> DBSIZE
(integer) 1
- 字符串回复:以双引号包裹
127.0.0.1:6379> GET test
"1"
127.0.0.1:6379> GET testtest
(nil) //表示没有值,空结果
- 多行字符串回复:每一行字符都以一个序号开头
127.0.0.1:6379> KEYS * //当前数据库存在的键名
1) "hello"
2) "TEST"
3) "test"
4. 配置
4.1 动态配置
通过CONFIG SET name value命令修改
127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"
127.0.0.1:6379> CONFIG SET loglevel warning
OK
127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "warning"
//第一行字符串表示选项名,第二行即是选项值
4.2 redis配置文件redis.conf选项
- 连接选项
bind 127.0.0.1 //默认绑定主机地址
port 6379 //默认端口
timeout 0 //当客户端闲置多久后关闭连接,0代表没有启动该选项
loglevel notice //日志的记录级别
// debug (很详细的信息 ,适合开发和测试)
// verbose (包含不太有用的信息)
// notice (适合生产环境)
// warning (警告信息)
logfile "" //日志的记录方式,默认为标准输出
databases 16 //默认数据库数量为16个,编号从0到15
- 快照选项(SNAPSHOTTING)
save <seconds> <changed> //多少sec至少有多少个changed才将其同步到磁盘中的数据文件里
save 900 1 //900秒(15分钟)至少有1次
save 300 10 //300秒(5分钟)至少有10次
save 60 10000 //60秒(1分钟)至少有10000次
rdbcompression yes //存储本地数据库是否启用LZF压缩,默认yes
dbfilename dump.rdb //指定本地数据库文件名,默认为dump.rdb
dir ./ //指定本地数据库的存放目录,默认是当前目录
5. 多数据库
从redis.conf文件可以看到redis默认有16个数据库,redis启动连接后会自动选择0号数据库,不过可以SELECT命令更换数据库
127.0.0.1:6379> SELECT 15
OK
127.0.0.1:6379[15]>
注:本文参考《redis入门指南》第二版