5.2 redis-benchmark 测试工具
redis-benchmark是官方自带的Redis性能测试工具,可以有效的测试Redis服务的性能。
基本的测试语法:redis-benchmark [选项] [选项值] -h:指定服务器主机名。 -p:指定服务器端口。 -s:指定服务器 socket -c:指定并发连接数。 -n:指定请求数。 -d:以字节的形式指定SET/GET值的数据大小。 -k:l=keep alive 0=reconnect -r:SET/GET/INCR 使用随机key,SADD使用随机值 -P:通过管道传输<numreg>请求 -q:强制退出redis,仅显示query/sec值 --csv:以CSV格式输出 -l:生成循环,永久执行测试 -t:仅运行以逗号分隔的测试命令列表 -I:Idle模式,仅打开N个idle连接并等待 复制代码
示例1:
向IP地址为192.168.72.60、 端口为6379 的Redis 服务器发送100个并发连接与100000 个请求测试性能。
redis-benchmark -h 192.168.72.60 -p 6379 -c 100 -n 100000 复制代码
网络异常,图片无法展示
|
示例2:
测试存取大小为100字节的数据包的性能。
redis-benchmark -h 192.168.72.60 -p 6379 -q -d 100 复制代码
网络异常,图片无法展示
|
示例3:
测试本机上Redis 服务在进行 set 与 lpush 操作时的性能。
redis-benchmark -t set,lpush -n 100000 -q 复制代码
网络异常,图片无法展示
|
六、Redis数据库常用命令
命令 | 作用 |
set | 存放数据 |
get | 获取数据 |
keys * | 查看所有的key |
keys k? | 查看k开头后面任意一位的数据 |
exists | 判断键是否存在(存在1,不存在0) |
del | 删除键 |
type | 查看键对应的value值类型 |
rename key1 key2 | 改名,不管key2是否存在都会改名成功。如果存在,key1的值会覆盖key2得值 |
renamenx key1 key2 | 改名,若key2不存在,可以改名成功。若key2存在则不进行改名 |
dbsize | 查看当前数据库中key的数目 |
6.1 set、get 设置和获取键的值
set:存放数据,命令格式为 set key value get:获取数据,命令格式为 get key 示例: [root@yuji ~]# redis-cli 127.0.0.1:6379> set teacher lisi OK 127.0.0.1:6379> get teacher "lisi" 复制代码
网络异常,图片无法展示
|
6.2 keys 获取键值列表
keys命令可以获取符合规则的键值列表,通常情况可以结合 *、? 等选项来使用。
#先创建几个键 127.0.0.1:6379>set k1 1 127.0.0.1:6379>set k2 2 127.0.0.1:6379>set k3 3 127.0.0.1:6379>set v1 4 127.0.0.1:6379>set v5 5 127.0.0.1:6379>set v22 6 127.0.0.1:6379>set v33 7 127.0.0.1:6379>keys * #查看当前数据库中所有键 127.0.0.1:6379>keys v* #查看当前数据库中以v开头的键 127.0.0.1:6379>keys v? #查看当前数据库中以v开头,后面包含任意一位字符的键 127.0.0.1:6379>keys v?? #查看当前数据库中以v开头,后面包含任意两位字符的键 复制代码
网络异常,图片无法展示
|
6.3 exists 判断键是否存在
exists 命令可以判断键是否存在。
返回1,表示键存在。
返回0,表示键不存在。
127.0.0.1:6379> exists teacher #判断teacher键是否存在,返回1表示存在 (integer) 1 127.0.0.1:6379> exists student #判断studen键是否存在,返回0表示存在 (integer) 0 复制代码
网络异常,图片无法展示
|
6.4 del 删除键
del 命令可以删除当前数据库的指定key。
127.0.0.1:6379> get k1 "1" 127.0.0.1:6379> del k1 #删除k1键 (integer) 1 127.0.0.1:6379> get k1 (nil) 127.0.0.1:6379> exists k1 #k1键已不存在 (integer) 0 复制代码
网络异常,图片无法展示
|
6.5 type 查看键存储的数据类型
type 命令可以获取 key 对应的 value 值类型。
127.0.0.1:6379> get k2 "2" 127.0.0.1:6379> type k2 string #字符串类型 复制代码
网络异常,图片无法展示
|
6.6 rename 重命名
rename 命令是对已有 key 进行重命名。(覆盖)
- 使用rename命令进行重命名时,无论目标key是否存在都会进行重命名,且源key的值会覆盖目标key的值。
- 在实际使用过程中,建议先用exists命令查看目标key 是否存在,然后再决定是否执行rename 命令,以避免覆盖重要数据。
命令格式: rename 源key 目标key 复制代码
示例:
127.0.0.1:6379> keys * 1) "k3" 2) "v1" 3) "v33" 4) "v5" 5) "mylist" 6) "v22" 7) "teacher" 8) "key:__rand_int__" 9) "counter:__rand_int__" 10) "k2" 11) "myset:__rand_int__" 127.0.0.1:6379> rename v33 v30 #将键v33重命名为v30 OK 127.0.0.1:6379> keys * 1) "k3" 2) "v1" 3) "v30" 4) "v5" 5) "mylist" 6) "v22" 7) "teacher" 8) "key:__rand_int__" 9) "counter:__rand_int__" 10) "k2" 11) "myset:__rand_int__" 复制代码
网络异常,图片无法展示
|
6.7 renamenx 会检查目标键名是否已存在
renamenx 命令的作用是对已有key进行重命名,并检测新名是否存在,如果目标key存在则不进行重命名。(不覆盖)
127.0.0.1:6379> keys * 1) "k3" 2) "v1" 3) "v30" 4) "v5" 5) "mylist" 6) "v22" 7) "teacher" 8) "key:__rand_int__" 9) "counter:__rand_int__" 10) "k2" 11) "myset:__rand_int__" 127.0.0.1:6379> renamenx v1 k3 #因为k3键存在,所以重命名不成功。返回0表示执行不成功。 (integer) 0 127.0.0.1:6379> renamenx v1 v100 #重命名成功。返回1表示成功。 (integer) 1 127.0.0.1:6379> keys * 1) "k3" 2) "v100" 3) "v30" 4) "v5" 5) "mylist" 6) "v22" 7) "teacher" 8) "key:__rand_int__" 9) "counter:__rand_int__" 10) "k2" 11) "myset:__rand_int__" 复制代码
网络异常,图片无法展示
|