文章目录
- Redis客户端命令
- 一、String操作
- 二、List操作
- 三、Set操作
-
-
-
- `sadd setkey value1 value2 value3 ...`
- `smembers setkey`
- `sismember setkey value`
- `scard setkey`
- `srem setkey value1 [value2 value3 ...]`
- `srandmember key num`
- `spop setkey [num]`
- `smove setkey1 setkey2 value`
- `sdiff setkey1 [setkey2 setkey3 ...]`
- `sinter setkey1 [setkey1 setkey3 ...]`
- `sunion setkey1 [setkey2 setkey3 ...]`
-
-
- 四、ZSet操作
- 五、Hash操作
-
-
-
- `hset hashkey key1 value1 [key2 value2 ...]`
- `hget hashkey key`
- `hmset hashkey key1 value [key2 value ...]`
- `hmget hashkey key1 [key2 key3 ...]`
- `hgetall hashkey`
- `hdel hashkey key1 [key2 ...]`
- `hlen hashkey`
- `hexists hashkey key`
- `hkeys` 和 `hvals`
- `hincrby` 与 `hincrbyfloat`
- `hsetnx hashkey key value`
-
-
Redis客户端命令
exit
- 作用:退出客户端
shutdown
- 作用:关闭redis服务器
select index
- 作用:选择库,index从0-15
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> select 15
OK
127.0.0.1:6379[15]> select 16
(error) ERR DB index is out of range
127.0.0.1:6379[15]>
dbsize
- 作用:查看当前库中key的数量
keys *
- 查看当前库的所有key
- 可以用
keys k???
查看,一个?
代表一个字符; - 也可以用
keys k*
查看,一个*
号代表0或多个字符;
127.0.0.1:6379> keys k???
1) "key3"
2) "key2"
3) "key1"
127.0.0.1:6379> keys k*
1) "key3"
2) "key2"
3) "key1"
flushdb
- 作用:删除当前库中所有数据
同类操作:
flushall
// 删除所有库中所有数据
exists key
- 作用:判断key是否存在,存在返回1,不存在返回0
move key index
- 作用:将当前key移动到index号库中
127.0.0.1:6379[1]> set k3 hello
OK
127.0.0.1:6379[1]> get k3
"hello"
127.0.0.1:6379[1]> EXISTS k3
(integer) 1
127.0.0.1:6379[1]> move k3 2
(integer) 1
127.0.0.1:6379[1]> EXISTS k3
(integer) 0
127.0.0.1:6379[1]> SELECT 2
OK
127.0.0.1:6379[2]> dbsize
(integer) 1
127.0.0.1:6379[2]> get k3
"hello"
ttl key
- 作用:查看当前key还有多少秒过期,-1表示永不过期,-2 表示已过期
同类操作:
pttl key
// 返回key的剩余生存时间,单位是毫秒;
expire key num
- 作用:设置key的过期时间,单位秒
同类操作:
pexpire key num
// 设置key的过期时间,单位是毫秒
;expireat key time
// 设置key的过期时间,time是以秒为精度表示的时间戳;pexpireat key time
// 设置key的过期时间,time是以毫秒为精度表示的时间戳
127.0.0.1:6379> ttl k2
(integer) -1
127.0.0.1:6379> expire k2 100
(integer) 1
127.0.0.1:6379> ttl k2
(integer) 98
persist key
- 作用:移除一个键的过期时间;
127.0.0.1:6379> expire key 100
(integer) 1
127.0.0.1:6379> ttl key
(integer) 98
127.0.0.1:6379> persist key
(integer) 1
127.0.0.1:6379> ttl key
(integer) -1
del key
- 作用:删除key
type key
- 作用:查看key的数据类型
127.0.0.1:6379> set k2 hello
OK
127.0.0.1:6379> get k2
"hello"
127.0.0.1:6379> type k2
string
127.0.0.1:6379> rpush mylist 1 2 3 4
(integer) 4
127.0.0.1:6379> lrange mylist 0 4
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> type mylist
list
save
与 bgsave
- 作用:立即执行持久化
save
会阻塞当前其他操作,bgsave
会在后台异步执行快照操作,同时还能响应客户端请求,- 可以通过
lastsave
命令获取最后一次成功执行快照的时间。
info
- 查看服务器信息,如果只输入
info
会把全部信息打印出来,包括:Server
、Clients
、Memory
、Persistence
、Stats
、Replication
、CPU
、Cluster
、Keyspace
,等,可以执行info [section]
来查看特定的信息
127.0.0.1:6379> info Replication
# Replication
role:master
connected_slaves:0
master_replid:fc1c73850da40c0187e27048bdfe4a3facc30bf8
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
Redis 数据操作
redis中的五个对象类型:
- string
- list
- set (无序集合)
- zset (有序集合)
- hash
一、String操作
set key value
- 作用:设置 key value
- 如果value中有空格,则在两端加引号
- 单双引号的区别是:单引号会将特殊字符转义,双引号原样存储
127.0.0.1:6379> set k5 'hello world'
OK
127.0.0.1:6379> get k5
"hello world"
127.0.0.1:6379> set k6 "hello world"
OK
127.0.0.1:6379> get k6
"hello world"
127.0.0.1:6379> set k7 'hello\tworld'
OK
127.0.0.1:6379> get k7
"hello\\tworld"
127.0.0.1:6379> strlen k7
(integer) 12
127.0.0.1:6379> set k8 "hello\tworld"
OK
127.0.0.1:6379> get k8
"hello\tworld"
127.0.0.1:6379> strlen k8
(integer) 11
get key
- 作用:获取key的值
del key
- 作用:删除key
append key value
- 作用:向key中添加值
127.0.0.1:6379> get k1
"hello"
127.0.0.1:6379> append k1 world
(integer) 10
127.0.0.1:6379> get k1
"helloworld"
strlen key
- 作用:查看key对应的value的长度
127.0.0.1:6379> get k1
"helloworld"
127.0.0.1:6379> strlen k1
(integer) 10
127.0.0.1:6379> strlen k2
(integer) 5
127.0.0.1:6379> get k2
"world"
incr key
- 作用:给key对应的value值加1,如果value不是数字则报错
同类操作:
decr key
// 减1incrby key num
// 加上指定的值decrby key num
// 减去指定的值
127.0.0.1:6379> set k3 10
OK
127.0.0.1:6379> incr k3
(integer) 11
127.0.0.1:6379> incrby k3 10
(integer) 21
127.0.0.1:6379> decr k3
(integer) 20
127.0.0.1:6379> decrby k3 10
(integer) 10
127.0.0.1:6379> set k4 hello
OK
127.0.0.1:6379> incr k4
(error) ERR value is not an integer or out of range
getrange key start end
- 作用:获取子串,从start到end
- end位置的字符也包含
- end可以用负数,从结尾开始查,-1代表最后一位字符
127.0.0.1:6379> set k4 'hello world'
OK
127.0.0.1:6379> get k4
"hello world"
127.0.0.1:6379> strlen k4
(integer) 11
127.0.0.1:6379> getrange k4 0 0
"h"
127.0.0.1:6379> getrange k4 0 1
"he"
127.0.0.1:6379> getrange k4 0 11
"hello world"
127.0.0.1:6379> getrange k4 0 10
"hello world"
127.0.0.1:6379> getrange k4 0 9
"hello worl"
127.0.0.1:6379> getrange k4 0 -1
"hello world"
127.0.0.1:6379> getrange k4 0 -2
"hello worl"
setrange key num str
- 作用:从num位置开始向后将数据修改为str
127.0.0.1:6379> set k1 hi
OK
127.0.0.1:6379> get k1
"hi"
127.0.0.1:6379> SETRANGE k1 0 he
(integer) 2
127.0.0.1:6379> get k1
"he"
127.0.0.1:6379> setrange k1 0 hello
(integer) 5
127.0.0.1:6379> get k1
"hello"
setex key time value
- 作用:在设置值时,同时设置有效期
setex
:set with expire- 单位是秒
127.0.0.1:6379> setex k4 10 hello
OK
127.0.0.1:6379> get k4
"hello"
127.0.0.1:6379> ttl k4
(integer) 4
127.0.0.1:6379> ttl k4
(integer) 0
setnx key value
- 作用:当key不存在时,设置key值,当key存在时,不覆盖
setnx
: set if not exist
127.0.0.1:6379> get k1
"hello"
127.0.0.1:6379> setnx k1 hi
(integer) 0
127.0.0.1:6379> get k1
"hello"
127.0.0.1:6379> get kk1
(nil)
127.0.0.1:6379> setnx kk1 value
(integer) 1
127.0.0.1:6379> get kk1
"value"
mset key1 value1 key2 value2 ...
- 作用:同时给多个key设置值
同类操作:
mget key1 key2 key3 ...
// 同时获取多个key的值m
是more
的意思;
127.0.0.1:6379> mset kk1 value1 kk2 value2 kk3 value3
OK
127.0.0.1:6379> mget kk1 kk2 kk3
1) "value1"
2) "value2"
3) "value3"
msetnx key1 value1 key2 value2 ...
- 作用:当key1,key2…都不存在时,为key赋值,只要有一个存在就不赋值。
127.0.0.1:6379> mget key1 key4
1) "value1"
2) (nil)
127.0.0.1:6379> msetnx key1 kkvalue1 key4 kkvalue4
(integer) 0
127.0.0.1:6379> mget key1 key4
1) "value1"
2) (nil)
127.0.0.1:6379> mget key4 key5
1) (nil)
2) (nil)
127.0.0.1:6379> msetnx key4 kkvalue4 key5 kkvalue5
(integer) 1
127.0.0.1:6379> mget key4 key5
1) "kkvalue4"
2) "kkvalue5"
getset key value
- 作用:将key的值返