Redis不同类型的命令
五大数据类型
String 字符串
List 列表
127.0.0.1:6379> lpush list1 aaa #插入值至列表头部(左)
(integer) 1
127.0.0.1:6379> lpush list1 bbb
(integer) 2
127.0.0.1:6379> rpush list1 111 #插入值至列表尾部(右)
(integer) 3
127.0.0.1:6379> lrange list1 0 -1 #取值(从头开始)
1) "bbb"
2) "aaa"
3) "111"
###############################################################################
127.0.0.1:6379> lpop list1 #弹出值(lpop从头, rpop从尾)
"bbb"
127.0.0.1:6379> lindex list1 0 #按下标取值
"aaa"
127.0.0.1:6379> llen list1 #查看list长度
(integer) 2
127.0.0.1:6379> lset list1 0 item #更新值
OK
127.0.0.1:6379> linsert list1 before aaa 123 #插入值(before|after)
(integer) 3
###############################################################################
127.0.0.1:6379> lrem list1 1 111 #移出list中指定个数的值
(integer) 1
127.0.0.1:6379> ltrim list2 2 3 #截取list中的值
OK
###############################################################################
127.0.0.1:6379> rpoplpush list2 list1 #从list2的尾部弹出值后插入至list1的头部
"aaa"
Set 集合
127.0.0.1:6379> sadd set1 aaa bbb ccc #存值
(integer) 3
127.0.0.1:6379> smembers set1 #查看所有值
1) "aaa"
2) "ccc"
3) "bbb"
127.0.0.1:6379> sismember set1 aaa #查看是否包含该值
(integer) 1
127.0.0.1:6379> scard set1 #查看元素个数
(integer) 3
127.0.0.1:6379> srem set1 bbb #移除元素
(integer) 1
###############################################################################
127.0.0.1:6379> srandmember set1 #抽取随机元素
"ccc"
127.0.0.1:6379> srandmember set1 2 #抽取多个随机元素
1) "aaa"
2) "ccc"
###############################################################################
127.0.0.1:6379> spop set1 #弹出值(从尾部)
"ccc"
127.0.0.1:6379> smove set1 set2 aaa #移动元素
(integer) 1
###############################################################################
127.0.0.1:6379> sdiff set1 set2 #查看多个集合中的不同元素(set1-set2的差集)
1) "bbb"
127.0.0.1:6379> sinter set1 set2 #查看多个集合中的相同元素(交集)
1) "aaa"
127.0.0.1:6379> sunion set1 set2 #查看多个集合中的所有元素(并集)
1) "aaa"
2) "bbb"
Hash 哈希
127.0.0.1:6379> hset user1 name zhangsan #设值
(integer) 1
127.0.0.1:6379> hget user1 name #取值
"zhangsan"
127.0.0.1:6379> hmget user2 name age #取多个值
1) "lisi"
2) "11"
###############################################################################
127.0.0.1:6379> hgetall user2 #查看所有键值对
1) "name"
2) "lisi"
3) "age"
4) "11"
127.0.0.1:6379> hkeys user2 #查看所有key
1) "name"
2) "age"
127.0.0.1:6379> hvals user2 #查看所有value
1) "lisi"
2) "11"
127.0.0.1:6379> hlen user2 #查看键值对个数
(integer) 2
###############################################################################
127.0.0.1:6379> hincrby user2 age 2 #i+2
(integer) 13
127.0.0.1:6379> hdel user1 name #删除值
(integer) 1
127.0.0.1:6379> hexists user2 age #查看该值是否存在
(integer) 1
127.0.0.1:6379> hsetnx user2 nickname dd #当值不存在时设值
(integer) 1
Zset 有序集合
127.0.0.1:6379> zadd score 50 zhangsan #存值
(integer) 1
127.0.0.1:6379> zrange score 0 -1 #取值
1) "zhangsan"
2) "wangwu"
3) "lisi"
127.0.0.1:6379> zrangebyscore score -inf +inf #从低到高排序(可以自定义范围)
1) "zhangsan"
2) "wangwu"
3) "lisi"
127.0.0.1:6379> zrangebyscore score -inf +inf withscores #带值排序
1) "zhangsan"
2) "50"
3) "wangwu"
4) "60"
5) "lisi"
6) "70"
###############################################################################
127.0.0.1:6379> zrem score lisi #移除元素
(integer) 1
127.0.0.1:6379> zcard score #查看元素个数
(integer) 2
127.0.0.1:6379> zcount score 60 100 #查看区间中元素个数
(integer) 1
三种特殊数据类型
Geospatial 地理位置
127.0.0.1:6379> geoadd city 121 31 shanghai #存值(经纬度)
(integer) 1
127.0.0.1:6379> geopos city beijing #查看位置
1) 1) "116.00000113248825073"
2) "39.99999991084916218"
###############################################################################
127.0.0.1:6379> geodist city beijing shanghai km #两点距离, 默认使用m作单位
"1098.1580"
###############################################################################
127.0.0.1:6379> georadius city 120 27 1000 km #查看坐标位置附近
1) "guangzhou"
2) "shanghai"
127.0.0.1:6379> georadiusbymember city shanghai 1500 km #查看元素位置附近
1) "guangzhou"
2) "shanghai"
3) "beijing"
###############################################################################
127.0.0.1:6379> geohash city beijing #查看元素位置hash
1) "wx47x9u8gu0"
- Geospatial的本质还是Zset, 可以使用Zset的命令, 如zrem移除元素
Hyperloglog 基数统计
127.0.0.1:6379> pfadd key1 a b c d e f g #存值
(integer) 1
127.0.0.1:6379> pfcount key1 #统计基数数量, 输入多个key可以查看并集
(integer) 7
127.0.0.1:6379> pfmerge key3 key1 key2 #合并key1和key2到key3
OK
Bitmaps 位图
127.0.0.1:6379> setbit sign 0 0 #存值
(integer) 0
127.0.0.1:6379> getbit sign 1 #取值
(integer) 1
127.0.0.1:6379> bitcount sign #统计值为1的个数
(integer) 5