redis入门指南第二版 学习记录
以下绝大部分内容取材于《redis入门指南》,部分结合个人知识,实践后得出。
只记录重要,明确,属于新知的相关内容,杜绝冗余和重复。
简介
1、key-value型数据库,单线程,基于内存的存取,支持为每一个键设置生存时间。
2、支持丰富的数据类型,字符串,散列,列表,集合,有序集合。
启动、停止等客户端操作
3、安装过程不再赘述
4、redis可执行文件说明
文件名 | 说明 |
redis-server | Redis服务器 |
redis-cli | Redis命令行客户端 |
redis-benchmark | Redis性能测试工具 |
redis-check-aof | AOF文件修复工具 |
redis-check-dump | RDB文件检查工具 |
redis-sentinel | Sentinel服务器(2.8v以后) |
常用的一般是redis-server与redis-cli
5、启动
redis-server 直接启动
redis-server --port 6380 自定义端口号启动(默认6379)
初始化脚本启动,可随系统启动而启动,建议百度,需要时学习。
6、停止
redis有可能将内存中的数据同步到硬盘中,所以强行终止可能会导致数据丢失。
正确方式应该向redis发送命令:
redis-cli SHUTDOWN
同时,redis可以妥善处理SIGTERM信号,直接kill掉redis的进程号与发送redis命令效果一致。
7、redis命令行客户端发送命令
redis-cli执行时会按照默认配置连接redis(地址127.0.0.1,端口为7379)
redis-cli 不带参数启动,会直接进入交互模式
redis-cli -h 127.0.0.1 -p 6379 通过-h和-p参数可指定地址和端口
redis-ping 测试是否连接正常,正常回复 ‘PONG’
8、redis命令行客户端命令返回值
a、状态回复:设置某个键值回复OK,ping是回复pong等,是最简单的回复。
b、错误回复:当命令有误或不存在时,错误回复以(error)开头。2.6版时,错误回复以"ERR"开头,2.8版以后,部分错误会以具体的错误类型开头。
c、整数回复:redis虽然没有整数类型,但是提供一些用于整数操作的命令,例如递增键值的命令INCR,此外,获取数据库中键的数量DBSIZE等,也会以整数回复。
d、字符串回复:最常见的回复类型,如获取一个字符串类型的键值,字符串回复以双引号包裹,当key不存在时,回复(nil)。
e、多行字符串回复:比较常见,如请求元素列表时,多行字符串中的每个字符串前会以一个序号开头。
9、redis配置相关
redis还支持较多配置选项,如是否开启持久化,日志级别等,较方便的设置方法是通过配置文件修改这些选项。
redis提供一个配置文件的模板redis.conf在源代码目录中。
在redis运行时,部分配置可以通过CONFIG SET命令动态修改,如:
1 redis> CONFIG SET loglevel warning 2 OK
同样可以使用CONFIG GET命令获取配置情况,如:
1 redis> CONFIG GET loglevel 2 1) "loglevel" 3 2) "warnning"
其中,第一行字符串表示选项名,第二行即是选项值。
10、redis多数据库
redis默认会拥有16个数据库,可以通过配置databases来改变,以编号0开始命名,不支持用户命名,通过SELECT命令选择使用哪一个数据库(默认0)。不同的是,redis的不同数据库并不是完全隔离的,像很多博客结尾都会加一句,使用flushall命令会删除所有数据库中的数据,所以不同的应用建议使用不同的redis实例。
入门命令使用
(redis中的命令是不区分大小写,方便阅读,此处全部使用大写)
11、获取符合规则的键名列表 KEYS pattern
支持glob风格的通配符格式:
? 匹配一个字符
* 匹配任意个字符(包含0个)
[] 匹配括号中的任一字符,可以是范围,[a-z],a[b-z]。
x 用于匹配转义字符
当key较多时,会影响性能
12、判断键是否存在 EXISTS key
存在返回整数,不存在返回0,不支持通配
13、删除键 DEL key [key......]
可以删除一个键,或者多个键,不支持通配,返回值为删除键的个数。
这里有个技巧,需要结合linux的命令,稍复杂,日后叙述。
14、获取键的数据类型 TYPE key
返回值可能是 string、hash、list、set、zset。