Redis之键类型探究(redis键的类型)

  Redis被成为“内存型数据库”,作为“NoSQL”(非关系型数据库),它优于传统关系型数据库的优点主要体现在速度快、强大的数据结构等方面。它支持二级过期,可以很好的满足复杂业务系统的运维与交互需要。那么,要使用Redis作为存储的数据,需要了解的知识点则有Redis的数据类型知识。它的介质是内存,因而各类数据类型也不像关系型数据库一样丰富多样,它只有9种数据类型:

1. String字符串

2. List 列表

3. Set 集合

4. Hash 类似Map

5. Zset 有序集合

6. HyperLogLog

7. Stream

8. Geospatial 地理位置

9. Bitmap 位图

   String字符串类型是Redis初始支持的最基础的数据类型。它以Key/Value的形式来存储字符串类型的数据,最大限度支持512M的字符串。代码如下:

> SET name "redis"
OK
> GET name
"redis"

   List是按照插入顺序存储一系列的字符串,可以用于消息队列的操作,尤其做消息队列比较有用,实现队列操作比较方便。代码如下:

> LPUSH mylist msg1
(integer) 1
> RPUSH mylist msg2
(integer) 2
> LRANGE mylist 0 -1
1) "msg1"
2) "msg2"

   Set即集合,集合是一组不重复且无序的字符串。另外它还支持一些常用集合操作,比如并集、交集、补集等,它多用于去重,如去除重复的日志文件等,实现起来就非常简单了。代码如下:

> SADD set1 msg1
(integer) 1
> SADD set1 msg2
(integer) 1
> SADD set1 msg3
(integer) 1
> SMEMBERS set1
1) "msg1"
2) "msg2"
3) "msg3"

   Hash类似于Map,支持键值对型数据的存储,每个Hash可以存储4294967295个键值对,键值都是字符串。它具有高效的查询性能和良好的可扩展性。代码如下:

> HSET hash1 key1 value1
(integer) 1
> HSET hash1 key2 value2
(integer) 1
> HGETALL hash1
1) "key1"
2) "value1"
3) "key2"
4) "value2"

   Zset(Sorted Set)拥有Set的特性,所有成员都是唯一的,成员也是字符串,但是每个成员都会关联一个double类型的分数。代码如下:

> ZADD zset1 2 one
(integer) 1
> ZADD zset1 3 two
(integer) 1
> ZRANGEBYSCORE zset1 2 5
1) "one"
2) "two"

   HpyerLogLog是Redis中的一种计算结构,用于在多个应用场景包括统计多少不重复IP、用户活跃度等方面进行统计结构支持,可以用来做大量标识的计数。代码如下:

> PFADD log 10 20 30 10
(integer) 1
> PFCOUNT log
(integer) 3

   Stream是Redis 5.0版本新加入的类型,主要用于处理流式数据,比如消息队列、日志等,其特点是在既定的消息空间(内存)以“先入先出”的原则,获取和生成新消息,所以特别适合处理实时消息处理。代码如下:

> XADD stream 10-10-2020 msg1 msg2
1) 1461019834680-0
> XRANGE stream - +
1) 1) "1461019834680-0"
2) 1) "msg1"
2) "msg2"

   Geo这个模块为Redis客户端提供了一个地理位置功能,可以实现把不同位置的地址


数据运维技术 » Redis之键类型探究(redis键的类型)