六、Redis命令工具
rdb 和 aof 是redis服务中持久化功能的两种形式 redis-cli常用于登陆至redis数据库 redis-server 用于启动 Redis 的工具 redis-benchmark 用于检测 Redis 在本机的运行效率 redis-check-aof 修复 AOF 持久化文件 redis-check-rdb 修复 RDB 持久化文件 redis-cli Redis命令行工具
6.1:redis-cli 命令行工具(远程登录)
redis-cli语法
redis-cli -h host -p port -a password #选项: -h :指定远程主机 -p :指定Redis 服务的端口号 -a :指定密码,未设置数据库密码可以省略-a选项 -n :指定进入库的序列号 若不添加任何选项表示,则使用127.0.0.1:6379 连接本机上的 Redis 数据库, #示例 redis-cli -h 192.168.145.20 -p 6379
此时无密码,不需要-a直接登陆
6.2:redis-benchmark 测试工具
redis-benchmark 是官方自带的 Redis 性能测试工具,可以有效的测试 Redis 服务的性能。
#语法 redis-benchmark [选项] [选项值]
选项 | 作用 |
-h | 指定服务器主机名 |
-p | 指定服务器端口 |
-s | 指定服务器socket(套接字) |
-c | 指定并发连接数 |
-n | 指定请求数 |
-d | 以字节的形式指定SET/GET值的数据大小 |
-k | 1=keep alive O=reconnect |
-r | SET/GET/INCR使用随机key,SADD使用随机值 |
-P | 通过管道传输请求 |
-q | 强制退出redis。仅显示querylsec值 |
-csv | 以csv格式输出 |
-1 | 生成循环,永久执行测试 |
-t | 仅运行以逗号分隔的测试命令列表 |
-l l | dle模式。仅打开N个idle连接并等待 |
示例1: 向IP地址为192.168.137.20、端口为6379的Redis服务器发送100个并发连接与100000个请求测试性能
redis-benchmark -h 192.168.145.10 -p 6379 -c 100 -n 100000
在这里插入图片描述
示例2:测试存取大小为100字节的数据包的性能
redis-benchmark -h 192.168.145.10 -p 6379 -q -d 100
示例3:测试本机上Redis 服务在进行set与lpush操作时的性能
redis-benchmark -t set,lpush -n 100000 -q
七、Redis数据库常用命令
7.1常用命令
set 存放数据,命令格式为 set key value
get 获取数据,命令格式为 get key
keys 命令可以取符合规则的键值列表,通常情况可以结合*、?等选项来使用
exists 命令可以判断键值是否存在
del 命令可以删除当前数据库的指定 key
type 命令可以获取 key 对应的 value 值类型
rename 命令是对已有 key 进行重命名(覆盖)
renamenx 命令的作用是对已有key进行重命名,并检测新名是否存在,如果目标key存在则不进行重命名(不覆盖)
dbsize 命令的作用是查看当前数据库中 key 的数目
命令(红色命令) | 解释 |
set |
存放数据 |
get |
获取数据 |
keys * |
获取所有的key |
keys s* |
以s开头的数据 |
keys s? |
以s开头后面包含任意一位的数据 |
keys s?? |
以s开头后面包含任意二位的数据 |
exists aaa |
判断aaa是否存在(存在:1,不存在:0) |
del key |
删除当前数据库的key |
type key |
获取key对应的value值类型 |
rename key1 key2 |
将key1修改为key2 |
renamenx key1 key2 |
key1修改为key2之前判断key2是否存在,不存在则重命名 |
dbsize |
查看当前数据库中key的数目 |
7.2示例
7.2.1set、get命令存放、获取数据
set 存放数据,命令格式为 set key value get 获取数据,命令格式为 get key
7.2.2keys命令取符合规则的键值列表
keys 命令可以取符合规则的键值列表,通常情况可以结合*、?等选项来使用 keys * 查看当前数据库中所有的键 keys h* 查看当前数据库中以h开头的数据 keys a? 查看当前数据库中以a开头后面包含任意一位的数据 keys a??查看当前数据库中以a开头后面包含任意俩位的数据
7.2.3exists命令判断键值是否存在
exists 命令可以判断键值是否存在
7.2.4del命令删除当前数据库的指定key
keys * del a8 keys *
7.2.5type 命令获取key对应的value值类型
type a1
7.2.6rename命令对已有key进行重命名(覆盖)
rename 源key 目标key
使用rename命令进行重命名时,无论目标key是否存在都进行重命名,且源key的值会覆盖目标key的值。在实际使用过程中,建议先用 exists 命令查看目标 key 是否存在,然后再决定是否执行 rename 命令,以避免覆盖重要数据
7.2.7renamenx已有key进行重命名,并检测新名是否存在,如果目标key存在则不进行重命名。 (不覆盖)
renamenx 源key 目标key 1
7.2.8dbsize命令查看当前数据库中key的数目
dbsize 命令的作用是查看当前数据库中 key 的数目 keys * dbsize
7.2.9config set requirepass password命令设置密码
使用config set requirepass password命令设置密码 使用config get requirepass命令查看密码(一旦设置密码,必须先验证通过密码,否则所有操作不可用)
config set requirepass 123456 #设置密码 auth 123456 #验证密码 config get requirepass #查看密码
7.2.10删除密码
config set requirepass ''
7.3redis多数据库常用命令
Redis 支持多数据库,Redis 默认情况下包含 16 个数据库,数据库名称是用数字 0-15 来依次命名的
多数据库相互独立,互不干扰
select 序号 多数据库间切换 move 键值 序号 多数据库间移动数据 FLUSHDB 清空当前数据库数据 FLUSHALL 清空所有数据库的数据,慎用!
7.3.1多数据库间切换
命令格式: select 序号 使用redis-cli连接Redis数据库后,默认使用的是序号为0的数据库。 select 10 #切换至序号为10的数据库 select 15 #切换至序号为15的数据库 select 0 #切换至序号为0的数据库
7.3.2多数据库间移动数据
move 键值 数据库序号
7.3.3清除数据库内数据
FLUSHDB :清空当前数据库数据 FLUSHALL :清空所有数据库的数据,慎用!
八、总结
我们需要了解关系型数据库和非关系型数据库的区别,以及它们各自的优点;我们重点要了解redis以及它的基础常用命令:set:存放数据、get:获取数据、keys:可以取符合规则的键值列表、exists:可以判断键值是否存在、del:可以删除当前数据库的指定 key、type:可以获取 key 对应的 value 值类型、rename:对已有 key 进行重命名(覆盖)、renamenx:作用是对已有key进行重命名,并检测新名是否存在,如果目标key存在则不进行重命名(不覆盖)、dbsize:查看当前数据库中 key 的数目