Redis
1.查看配置语法
|
|
1 |
CONFIG GET CONFIG_SETTING_NAME |
2.获取所有配置项
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
127.0.0.1:6379> config get * 1) "dbfilename" 2) "dump.rdb" 3) "requirepass" 4) "" 5) "masterauth" 6) "" 7) "cluster-announce-ip" 8) "" 9) "unixsocket" 10) "" 11) "logfile" 12) "" ... |
3.设置字符串
|
|
1 2 |
127.0.0.1:6379> set xk www.javaxks.com OK |
4.获取字符串
|
|
1 2 |
127.0.0.1:6379> get xk "www.javaxks.com" |
5.获取随机key
|
|
1 2 |
127.0.0.1:6379> randomkey "xk" |
6.获取key存储的类型
|
|
1 2 |
127.0.0.1:6379> randomkey "xk" |
7.判断key是否存在
|
|
1 2 |
127.0.0.1:6379> randomkey "xk" |
8.修改key的名称
|
|
1 2 |
127.0.0.1:6379> randomkey "xk" |
9.返回key存储的字符串的长度
|
|
1 2 |
127.0.0.1:6379> randomkey "xk" |
10.同时设置多个kv对
|
|
1 2 |
127.0.0.1:6379> mset date 5.21 mood haha OK |
11.获取多个key的值
|
|
1 2 3 |
127.0.0.1:6379> mget date mood 1) "5.21" 2) "haha" |
12.设置key 10秒后过期
|
|
1 2 |
127.0.0.1:6379> expire date 10 (integer) 1 |
13.查看当前还剩几秒过期
|
|
1 2 |
127.0.0.1:6379> ttl date (integer) 4 |
14.过期后获取key
|
|
1 2 |
127.0.0.1:6379> get date (nil) |
15.列表最多可以存多少元素
2的32次方 - 1
16.从左向列表中添加元素
|
|
1 2 3 4 5 6 7 8 |
127.0.0.1:6379> lpush fruit apple (integer) 1 127.0.0.1:6379> lpush fruit strawberry (integer) 2 127.0.0.1:6379> lpush fruit pear (integer) 3 127.0.0.1:6379> lpush fruit orange (integer) 4 |
17.获取列表中所有的元素
|
|
1 2 3 4 5 |
127.0.0.1:6379> lrange fruit 0 -1 1) "orange" 2) "pear" 3) "strawberry" 4) "apple" |
18.从左弹出元素
|
|
1 2 3 4 5 6 |
127.0.0.1:6379> lpop fruit "orange" 127.0.0.1:6379> lrange fruit 0 -1 1) "pear" 2) "strawberry" 3) "apple" |
19.获取指定位置的元素
|
|
1 2 |
127.0.0.1:6379> lindex fruit 2 "apple" |
20.获取列表长度
|
|
1 2 |
127.0.0.1:6379> llen fruit (integer) 3 |
21.集合
set是string类型的无序集合,集合中的元素都是唯一的。
22.向集合中添加元素
|
|
1 2 3 4 5 6 7 8 9 10 |
127.0.0.1:6379> sadd books java (integer) 1 127.0.0.1:6379> sadd books python (integer) 1 127.0.0.1:6379> sadd books php (integer) 1 127.0.0.1:6379> sadd books go (integer) 1 127.0.0.1:6379> sadd books ruby (integer) 1 |
23.获取集合中的元素
|
|
1 2 3 4 5 6 |
127.0.0.1:6379> smembers books 1) "go" 2) "python" 3) "java" 4) "php" 5) "ruby" |
24.删除集合中的指定元素
|
|
1 2 3 4 5 6 7 |
127.0.0.1:6379> srem books ruby (integer) 1 127.0.0.1:6379> smembers books 1) "php" 2) "java" 3) "python" 4) "go" |
25.zset类型
有序的集合
元素为string类型
元素唯一,不重复。每个元素有自己的权重。
26.向有序集合中添加元素
|
|
1 2 3 4 5 6 7 8 |
127.0.0.1:6379> zadd animal 1 monkey (integer) 1 127.0.0.1:6379> zadd animal 2 chicken (integer) 1 127.0.0.1:6379> zadd animal 3 mouse (integer) 1 127.0.0.1:6379> zadd animal 4 horse (integer) 1 |
27.获取有序集合元素个数
|
|
1 2 |
127.0.0.1:6379> zcard animal (integer) 4 |
28.获取所有元素
|
|
1 2 3 4 5 |
127.0.0.1:6379> zrange animal 0 -1 1) "monkey" 2) "chicken" 3) "mouse" 4) "horse" |
29.获取所有元素并带上分值
|
|
1 2 3 4 5 6 7 8 9 |
127.0.0.1:6379> zrange animal 0 -1 withscores 1) "monkey" 2) "1" 3) "chicken" 4) "2" 5) "mouse" 6) "3" 7) "horse" 8) "4" |
30.HyperLogLog
Redis 在 2.8.9 版本添加了 HyperLogLog 结构。
Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。
但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。
31.向HyperLogLog中添加元素
|
|
1 2 3 4 5 6 7 8 9 10 |
127.0.0.1:6379> pfadd color blue (integer) 1 127.0.0.1:6379> pfadd color yellow (integer) 1 127.0.0.1:6379> pfadd color pink (integer) 1 127.0.0.1:6379> pfadd color white (integer) 1 127.0.0.1:6379> pfadd color black (integer) 1 |
32.获取HyperLogLog元素个数
|
|
1 2 |
127.0.0.1:6379> pfcount color (integer) 5 |
33.发布订阅
种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。
Redis 客户端可以订阅任意数量的频道。
34.创建订阅频道
|
|
1 2 3 4 5 6 |
127.0.0.1:6379> subscribe everydayNews Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "everydayNews" 3) (integer) 1 1) "message" |
35.在对应频道发布消息
|
|
1 2 |
127.0.0.1:6379> publish everydayNews "morning" (integer) 1 |
订阅者收到:
|
|
1 2 3 4 5 6 7 |
Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "everydayNews" 3) (integer) 1 1) "message" 2) "everydayNews" 3) "morning" |
36.非后台执行备份
|
|
1 2 |
127.0.0.1:6379> save OK |
37.后台执行备份
|
|
1 2 |
127.0.0.1:6379> BGSAVE Background saving started |
38.查看是否需要密码验证
|
|
1 2 3 |
127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "" |
参考:
https://redis.io/
http://redisdoc.com/
https://www.runoob.com/redis/
