Redis支持如下数据类型:

  • 字符串(String)
  • 哈希(hash)
  • 列表(list)
  • 集合(Set)
  • 有序集合(Zset)

Redis字符串(String)

Redis字符串是Redis最基本的数据类型,一个key对应一个value。Redis字符串是二进制安全的。Redis字符串value最多可以存储512M。

例子

我们使用set命令存储一个key为yxjc,value为123的字符串。然后使用get命令获取yxjc这个key所对应的value值。

127.0.0.1:6379> set yxjc 123
OK
127.0.0.1:6379> get yxjc
"123"
127.0.0.1:6379>

Redis哈希(Hash)

在Redis中,哈希是键值对的集合。

例子

我们使用hset存储一个key为yxjc,键值对为php->composer, maven->java的value。

127.0.0.1:6379> hset yxjc php composer
(integer) 1
127.0.0.1:6379> hset yxjc java maven
(integer) 1
127.0.0.1:6379> hgetall yxjc
1) "php"
2) "composer"
3) "java"
4) "maven"

Redis列表(list)

Redis 列表是字符串列表,按插入顺序排序。 您可以在头部或尾部向 Redis 列表中添加元素。

例子

我们使用lpush命令插入key为yxjc value为 php,java,python,java的列表value值。
127.0.0.1:6379> lpush yxjc php
(integer) 1
127.0.0.1:6379> lpush yxjc java
(integer) 2
127.0.0.1:6379> lpush yxjc python
(integer) 3
127.0.0.1:6379> lpush yxjc java
(integer) 4
127.0.0.1:6379> lrange yxjc 0,5
(error) ERR wrong number of arguments for 'lrange' command
127.0.0.1:6379> lrange yxjc 0 5

Redis无序集合(Set)

在Redis中Set是无序集合,它的时间复杂度是O(1)。

例子 

我们使用sadd命令插入key为yxjclist value为php,java,python的集合。

127.0.0.1:6379> sadd yxjclist java
(integer) 1
127.0.0.1:6379> sadd yxjclist php
(integer) 1
127.0.0.1:6379> sadd yxjclist python
(integer) 1
127.0.0.1:6379> smembers yxjclist
1) "python"
2) "php"
3) "java"

Redis有序集合(Zset)

在Redis中Set是有序集合,Zset是集合是不重复的。

例子

127.0.0.1:6379> zadd yxjclist 0 php
(integer) 1
127.0.0.1:6379> zadd yxjclist 0 java
(integer) 1
127.0.0.1:6379> zadd yxjclist 0 python
(integer) 1
127.0.0.1:6379> ZRANGEBYSCORE yxjclist 0 10
1) "java"
2) "php"
3) "python"