系列文章目录
Redis常用指令整理
前言
上一篇文章整理了Redis的安装,下面整理Redis的基本操作指令。
一.常用指令介绍
1.redis启动
本地启动
redis-cli
远程启动
redis-cli -h host -p port -a password
redis-cli -h 192.168.130.145 -p 6379 -a 123456
2.清空key
清空当前数据库所有keys:
flushdb
清空所有数据库keys
flushall
3.对key的操作
查询所有keys:
keys *
查询以某个字段开始的keys,如查询以pre开头的keys
keys pre*
判断某个key是否存在,exists key名,如判读名为name的key是否存在,存在返回1,不存在返回0.
127.0.0.1:6379> exists name
(integer) 1
设置key 和value,如设置key为name,value为Fiona
127.0.0.1:6379> set name Fiona
OK
获取key值,如获取上述指令key为name 的值
127.0.0.1:6379> get name
Fiona
查看key的数据类型,如查看name的数据类型
127.0.0.1:6379> type name
string
重命名key,如将key值为name的key重命名为newname
127.0.0.1:6379> rename name newname
OK
查看当前数据库,key值的个数
127.0.0.1:6379> dbsize
(integer) 1
删除key,如删除newname
127.0.0.1:6379> del newname
(integer) 1
4.对value的操作
String字符串的操作
向尾部追加值,append key value,如下是向key值为test的value里添加“def”
127.0.0.1:6379> set test abc
OK
127.0.0.1:6379> get test
"abc"
127.0.0.1:6379> append test def
(integer) 6
127.0.0.1:6379> get test
"abcdef"
获取value的长度,strlen key
127.0.0.1:6379> strlen test
(integer) 6
同时创建多个key value对,mset key1 value1 key2 value2 key3 value3 …
对应的同时查看多个keys对应的value值,用mget key1 key2 key3…
实例如下:
127.0.0.1:6379> mset test1 abc test2 def test3 ghi
OK
127.0.0.1:6379> mget test1 test2 test3
1) "abc"
2) "def"
3) "ghi"
List列表的操作
创建key和对应的value,rpush key value,注意:rpush是向右插入value,即顺序创建value.
实例如下:
llen key 查看key 对应的value 的长度
lrange key start stop 用来查看key对应位置的value值,0表示首个元素,-1代表最后一个元素。
lindex key index,获取列表对应位置的value
127.0.0.1:6379> rpush list1 1 2 3 4
(integer) 4
127.0.0.1:6379> rpush list1 567
(integer) 5
127.0.0.1:6379> llen list1
(integer) 5
127.0.0.1:6379> lrange list1 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "567"
127.0.0.1:6379> lindex list1 1
"2"
lpush向列表的左部插入value,与rpush相反。
127.0.0.1:6379> strlen test
(integer) 6
同时创建多个key value对,mset key1 value1 key2 value2 key3 value3 …
对应的同时查看多个keys对应的value值,用mget key1 key2 key3…
实例如下:
127.0.0.1:6379> mset test1 abc test2 def test3 ghi
OK
127.0.0.1:6379> mget test1 test2 test3
1) "abc"
2) "def"
3) "ghi"
Set集合和ZSet集合的操作
无序集合添加元素 sadd key value
127.0.0.1:6379> sadd name "zhangsan" "wangwu" "zhaoliu"
(integer) 3
显示无序集合的元素 smembers key
127.0.0.1:6379> smembers name
1) "zhaoliu"
2) "wangwu"
3) "zhangsan"
随机获取无序集合的元素,srandmember key
127.0.0.1:6379> srandmember name
"zhaoliu"
127.0.0.1:6379> srandmember name
"zhangsan"
127.0.0.1:6379> srandmember name
"zhangsan"
创建另外一个集合name1
127.0.0.1:6379> sadd name1 "jack" "fiona" "sara" "zhangsan"
(integer) 4
求name 和name1两个无序集合的交集sinter key1 key2…
127.0.0.1:6379> sinter name name1
1) "zhangsan"
求name 和name1两个无序集合的并集
sunion key1 key2…
127.0.0.1:6379> sunion name name1
1) "zhangsan"
2) "wangwu"
3) "zhaoliu"
4) "sara"
5) "fiona"
6) "jack"
求name 和name1两个无序集合的差集
sdiff key1 key2…
127.0.0.1:6379> sdiff name name1
1) "wangwu"
2) "zhaoliu"
127.0.0.1:6379> sdiff name1 name
1) "fiona"
2) "jack"
3) "sara"
注意:key1,key2的位置不同,得出的结果不同,原理数据库的差集
有序集合添加元素
zadd key score number1 score2 number2 score3 number3…
score 是作为权重,对集合进行排序的。
用zrange key start_index stop_index来对有序集合进行输出
127.0.0.1:6379> zadd name3 10 "huahua" 20 "xiaoming" 30 "zhangsan" 5 "xiaohong"
(integer) 4
127.0.0.1:6379> zrange name3 0 -1
1) "xiaohong"
2) "huahua"
3) "xiaoming"
4) "zhangsan"
查看元素格式,用zcard key
127.0.0.1:6379> zcard name3
(integer) 4
哈希操作
创建hash表,指令hset key filed value
如创建name为zhangsan,age为22的hash1
查看value 用hget key filed
127.0.0.1:6379> hset hash1 name zhangsan age 22
(integer) 2
127.0.0.1:6379> hget hash1 name
"zhangsan"
127.0.0.1:6379> hget hash1 age
"22"
5.设置key的时效性
Redis是具有时效性的,如何设置缓存时效,利用指令expire key second进行设置。
下面创建一个firstname的key,设置时效为100s
127.0.0.1:6379> set firstname "huahua"
OK
127.0.0.1:6379> keys *
1) "test"
2) "test2"
3) "test1"
4) "newname"
5) "name2"
6) "name1"
7) "hash1"
8) "test3"
9) "name"
10) "name3"
11) "firstname"
127.0.0.1:6379> expire firstname 100
(integer) 1
查看还需要多久key值失效,用指令tll key
127.0.0.1:6379> ttl firstname
(integer) 89
100s后进行查看,发现firstname这个key不存在了。
127.0.0.1:6379> keys *
1) "test"
2) "test2"
3) "test1"
4) "newname"
5) "name2"
6) "name1"
7) "hash1"
8) "test3"
9) "name"
10) "name3"
6.Redis安全认证
查看Redis是否设置了密码,用config get requirepass,为空表示未设置密码
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
设置密码,用config set requirepass "密码“
127.0.0.1:6379> config set requirepass "test"
OK
127.0.0.1:6379> config get requirepass
(error) NOAUTH Authentication required.
验证密码是否正确,auth password
127.0.0.1:6379> auth test
OK
密码删除,将密码设置为空即可。
127.0.0.1:6379> config set requirepass " "
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) " "
7.Redis数据备份与恢复
Redis数据备份用指令save,这个命令在redis安装目录下自动创建dump.rbd文件
127.0.0.1:6379> save
OK
数据恢复,将dump.rbd文件移动到Redis安装目录下,启动服务即可。获取Redis目录可以用指令config get dir
127.0.0.1:6379> config get dir
1) "dir"
2) "C:\\Users\\86186\\Downloads\\Redis-x64-5.0.10"
总结
本文主要介绍了Redis的基本操作,后续会介绍归纳Redis性能特性方面的知识。
Redis作为当今很流行的数据库,连软考高项系统架构师都多次考到Redis相关知识,可见掌握Redis是非常重要的。