目录
一、Redis命令工具
1.redis-cli 命令行工具
2.redis-benchmark测试工具
3.Redis数据库五大类型
1、String
2、List
3、Hash(散列类型)
4、set无序集合
5、sorted set
二、Redis数据库常用命令
1、set与get的使用
2.查看数据库中键的情况
2.1 keys命令
2.2 exists命令
2.3 del命令
2.4 type命令
2.5 rename命令
2.6 dbsize命令
2.7 设置密码
3.多数据库间切换
4.清除数据库内数据
4.1 FLUSHDB
4.2 FLUSHALL
一、Redis命令工具
- redis-server:用于启动 Redis 的工具
- redis-benchmark:用于检测 Redis 在本机的运行效率
- redis-check-aof:修复 AOF 持久化文件
- redis-check-rdb:修复 RDB 持久化文件
- redis-cli:Redis 命令行工具
1.redis-cli 命令行工具
语法:redis-cli -h host -p port -a password
-h :指定远程主机
-p :指定 Redis 服务的端口号
-a :指定密码,未设置数据库密码可以省略-a 选项
[root@localhost utils]#redis-cli ##登录本机redis
127.0.0.1:6379> exit
[root@localhost utils]#redis-cli -h 192.168.21.10 -p 6379 ##登录指定主句redis
192.168.10.100:6379>
2.redis-benchmark测试工具
redis-benchmark 是官方自带的 Redis 性能测试工具,可以有效的测试 Redis 服务的性能。
基本的测试语法:
redis-benchmark [选项] [选项值]
- -h :指定服务器主机名。
- -p :指定服务器端口。
- -s :指定服务器 socket
- -c :指定并发连接数。
- -n :指定请求数。
- -d :以字节的形式指定 SET/GET 值的数据大小。
- -k :1=keep alive 0=reconnect 。
- -r :SET/GET/INCR 使用随机 key, SADD 使用随机值。
- -P :通过管道传输<numreq>请求。
- -q :强制退出 redis。仅显示 query/sec 值。
- --csv :以 CSV 格式输出。
- -l :生成循环,永久执行测试。
- -t :仅运行以逗号分隔的测试命令列表。
- -I :Idle 模式。仅打开 N 个 idle 连接并等待。
向 IP 地址为 192.168.10.23、端口为 6379 的 Redis 服务器发送 100 个并发连接与 100000 个请求测试性能
[root@localhost utils]#redis-benchmark -h 192.168.21.10 -p 6379 -c 100 -n 100000
测试存取大小为 100 字节的数据包的性能
redis-benchmark -h 192.168.21.10 -p 6379 -q -d 100
测试本机上 Redis 服务在进行 set 与 lpush 操作时的性能
redis-benchmark -t set,lpush -n 100000 -q
3.Redis数据库五大类型
1、String
String是 redis 最基本的类型,最大能存储 512MB 的数据,String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等。默认是此数据类型
2、List
列表的元素类型为string,按照插入顺序排序,在列表的头部或尾部添加元素
3、Hash(散列类型)
hash用于存储对象,可以采用这样的命名方式(hash格式):对象类别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值。
4、set无序集合
元素类型为string类型,元素具有唯一性, 不允许存在重复的成员。多个集合类型之间可以进行并集、交集和差集运算
5、sorted set
a、有序集合,元素类型为Sting,元素具有唯一性, 不能重复。b、每个元素都会关联–个double类型的分数score(表示权重),可以通过权重的大小排序,元素的score可以相同。
二、Redis数据库常用命令
1、set与get的使用
set:存放数据,命令格式为 set key value
get:获取数据,命令格式为 get key
[root@localhost utils]#redis-cli -h 192.168.21.10 -p 6379
192.168.21.10:6379> set kysw 32
OK
192.168.21.10:6379> get kysw
"32"
192.168.21.10:6379>
2.查看数据库中键的情况
keys 命令可以取符合规则的键值列表,通常情况可以结合*、?等选项来使用。
exists 命令可以判断键值是否存在。
del 命令可以删除当前数据库的指定 key。
type 命令可以获取 key 对应的 value 值类型。
2.1 keys命令
192.168.21.10:6379> keys *
1) "g22"
2) "counter:__rand_int__"
3) "g1"
4) "mylist"
5) "k3"
6) "g5"
7) "myset:__rand_int__"
8) "key:__rand_int__"
9) "k1"
10) "k2"
2.2 exists命令
exists 可以判断键值是否存在
1 表示存在
0 表示不存在
2.3 del命令
可以删除当前数据库的指定 key
192.168.21.10:6379> keys *
1) "g22"
2) "counter:__rand_int__"
3) "g1"
4) "mylist"
5) "k3"
6) "g5"
7) "myset:__rand_int__"
8) "key:__rand_int__"
9) "k1"
10) "k2"
192.168.21.10:6379> del g1
(integer) 1
192.168.21.10:6379> keys *
1) "g22"
2) "counter:__rand_int__"
3) "mylist"
4) "k3"
5) "g5"
6) "myset:__rand_int__"
7) "key:__rand_int__"
8) "k1"
2.4 type命令
命令可以获取key对应的value值类型
192.168.21.10:6379> keys *
1) "g22"
2) "counter:__rand_int__"
3) "mylist"
4) "k3"
5) "g5"
6) "myset:__rand_int__"
7) "key:__rand_int__"
8) "k1"
9) "k2"
192.168.21.10:6379> type k1
string
2.5 rename命令
rename 命令是对已有 key 进行重命名。(覆盖)
rename 源key 目标key
使用rename命令进行重命名时,无论目标key是否存在都进行重命名,且源key的值会覆盖目标key的值。在实际使用过程中,建议先用 exists 命令查看目标 key 是否存在,然后再决定是否执行 rename 命令,以避免覆盖重要数据。
192.168.21.10:6379> keys *
1) "g22"
2) "counter:__rand_int__"
3) "mylist"
4) "k3"
5) "g5"
6) "myset:__rand_int__"
7) "key:__rand_int__"
8) "k1"
9) "k2"
192.168.21.10:6379> get k1
"1"
192.168.21.10:6379> rename k1 k8
OK
192.168.21.10:6379> keys *
1) "g22"
2) "counter:__rand_int__"
3) "mylist"
4) "k3"
5) "g5"
6) "myset:__rand_int__"
7) "key:__rand_int__"
8) "k2"
9) "k8"
192.168.21.10:6379> get k8
"1"
2.6 dbsize命令
命令的作用是查看当前数据库中 key 的数目。
2.7 设置密码
config set requirepass yourpassword
清空密码
3.多数据库间切换
Redis 支持多数据库,Redis 默认情况下包含 16 个数据库,数据库名称是用数字 0-15 来依次命名的。
多数据库相互独立,互不干扰。
语法:
select 序号
格式:move 键值 序号
192.168.21.10:6379> set k1 100
OK
192.168.21.10:6379> get k1
"100"
192.168.21.10:6379> select 1
OK
192.168.21.10:6379[1]> get k1
(nil)
192.168.21.10:6379[1]> select 0 #切换至目标数据库 0
OK
192.168.21.10:6379> get k1 #查看目标数据是否存在
"100"
192.168.21.10:6379> move k1 1 #将数据库 0 中 k1 移动到数据库 1 中
(integer) 1
192.168.21.10:6379> select 1 #切换至目标数据库 1
OK
192.168.21.10:6379> get k1 #查看被移动数据
"100"
192.168.21.10:6379> select 0
OK
192.168.21.10:6379> get k1 #在数据库 0 中无法查看到 k1 的值
(nil)
4.清除数据库内数据
4.1 FLUSHDB
清空当前数据库数据
4.2 FLUSHALL
清空所有数据库数据,慎用