Redis五种数据类型

个人记录,谨慎参考,欢迎指正。谢谢


1. String类型

Redis中最简单的值类型,一个key对应一个value。除了常规的增删查之外,还提供了整数类型key的递增/递减(INCR/DECR key),还可以设定以指定步长值增减。
常用操作:

```
'SET key value'                 添加值 
'GET key'                       获取值
'DEL key'                       删除值
'INCR/DECR key'                 递增/减数字
'INCR/DECR key decrement'       按指定步长增减
'APPEND key value'              向尾部追加值
'STRLEN key'                    返回键值的长度 ,如果键不存在则返回0 
'MSET key value  [key value …]'  同时设置多个键值
'MGET key  [key …]'             同时获取多个键值
```

2. List类型

list是一个链表结构,主要功能是pushpop、获取一个范围的所有值等等。List内部使用的是双向链表,所以他的增加和删除都有两个方向:向左/向右。例如:
向左边添加元素:LPUSH key value
向右边添加数据:RPUSH key value
常用操作:

```
'LPUSH / RPUSH'             向两端添加数据 
'LRANGE key [start] [stop]' 查看列表 //开始和结束索引,是闭区间
'LPOP / RPOP key'           从两端弹出元素
'LLEN key'                  获取列表中元素个数 
```

3. Hash类型

Hash的数据结构为 key field value。Hash 便于表示 Objects。
常用操作:

```
'HSET key field value '                 设置一个字段值
/*HSET命令不区分插入和更新操作 ,当执行插入操作时HSET命令返回1 ,当执行更新操作时返回0。*/
'HMSET key field value [field value ...]'   设置多个字段值
'HGET key field'                        获取一个字段值
'HMGET key field  [field ...]'          获取多个字段值
'HGETALL key'                       获取key下所有field-vlaue对应关系
'HDEL key field  [field ...]'               删除一个或多个字段
'HINCRBY key field increment'           增加数字
'HEXISTS key field'                 判断字段
'HSETNX key field value'                判断字段,不存在则赋值,存在则不操作
'HKEYS / HVALS key'                 获取字段名/字段值
'HLEN key'                          获取字段数量
```

4. Set类型

Set 是 string 类型的无序集合。
常用操作:

 ```
'SADD key member [member ...]'      增加元素
'SREM key member [member ...]'      删除元素
'SMEMBERS key'                      获取集合中所有元素
'SISMEMBER key member'              判断元素是否存在集合中
'SDIFF key [key ...]'               集合的差集运算
'SINTER key [key ...]'              集合的交集运算
'SUNION key [key ...]'              集合并集运算
'SCARD key'                         获得集合中元素的个数
'SPOP key'                          从集合中弹出一个元素(因为无序所以随机)
```

5. Sorted Set(zset)类型

在集合类型的基础上有序集合类型为集合中的每个元素都关联一个分数,这使得我们能够获得分数最高或最低的前N个元素、获取指定分数范围内的元素等与分数有关的操作。在某些方面有序集合和列表类型有些相似的。

相似:

  • 两者都是有序的
  • 两者都可以获取某一范围内元素

区别:

  • list类型通过链表实现,当元素增多时访问中间数据很慢。而zset使用散列表实现,即使读取位于中间部分的数据也很快。
  • List不能简单的调整某个元素位置,zset可以通过更改元素分数来实现。
  • Zset比list更耗内存。

常用操作:

```
ZADD key score member [score member ...]        插入元素,元素存在,则更改分数为新值
ZSCORE key member                   获取元素分数
ZREM key member [member  ...]           删除元素,不存在则被忽略
ZRANGE key start stop           获取排名在某个范围的元素列表,升序,闭区间
ZREVRANGE key start stop        获取排名在某个范围的元素列表,降序,闭区间
获取排名在尾部加上WITHSCORES 参数可以同时获取分数
ZRANGEBYSCORE key min max  [WITHSCORES]  [LIMIT offset count]
获得指定分数范围的元素,升序,limit表示设置获取的开始索引和步长
ZREMRANGEBYRANK key start stop  删除指定排名范围的元素
ZREMRANGEBYSCORE key min max    删除指定分数范围的元素
获取元素的排名:ZRANK key member(升序),ZREVRANK key member(降序)
```

你可能感兴趣的:(Redis五种数据类型)