Redis 基础信息:Redis 支持的数据类型
Redis数据库支持五种数据类型。
-
字符串
-
哈希
-
列表
-
集合
-
有序集合
-
字符串
字符串是一组字节。在Redis数据库中,字符串是二进制安全的。这意味着它们有一个已知的长度,不由任何特殊的终止字符决定。因此,可以在一个字符串中存储高达512兆字节的任何内容。
Example
让我们使用 SET 命令在字符串中存储一个字符串名称 Ajeet Kumar
,然后使用 GET 命令来检索它。
SET name "Ajeet Kumar"
OK
GET name
"Ajeet Kumar"
在上面的示例中,SET 和 GET 是 Redis 命令,名称是 Redis 中使用的键,Ajeet Kumar
是Redis中存储的字符串值。
Hashes
哈希是键值对的集合。 在 Redis 中,散列是字符串字段和字符串值之间的映射。 因此,它们用于表示对象。
示例
让我们存储一个包含用户基本信息的用户对象。
HMSET user:1 username ajeet password javatpoint alexa 2000
OK
HGETALL user:1
"username"
"ajeet"
"password"
"javatpoint"
"alexa"
"2000"
在这里, HMSET 和 HGETALL 是 Redis 的命令,而 user:1
是键名。
每个哈希可以存储多达 2 的 32 次方减 1 个键/值对(超过40亿)。
链接
Redis 列表定义为字符串列表,按插入顺序排序。 您可以将元素添加到头部或尾部的 Redis 列表中。
示例
lpush javatpoint java
(integer) 1
lpush javatpoint sql
(integer) 1
lpush javatpoint mongodb
(integer) 1
lpush javatpoint cassandra
(integer) 1
lrange javatpoint 0 10
"cassandra"
"mongodb"
"sql"
"java"
列表的最大长度为 2^32-1 个元素(每个列表超过 40 亿个元素)。
set(集合)
集合是 Redis 数据库中字符串的无序集合。在 Redis 中,您可以在 O ( 1 ) 时间复杂度中添加、删除和测试成员的存在性。
示例
sadd tutoriallist redis
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist sql
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist postgresql
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist postgresql
(integer) 0
redis 127.0.0.1:6379> sadd tutoriallist postgresql
(integer) 0
redis 127.0.0.1:6379> smembers tutoriallist
1) "redis"
2) "postgresql"
3) "sql"
在上面的示例中,您可以看到 postgresql 被添加了三次,但是由于集合的唯一属性,它仅被添加了一次。
集合中成员的最大数量为 2 的 32 次方减 1 个元素( 每个列表超过 40 亿个元素 )。
有序集合
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个 double 类型的分数。Redis 正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数却可以重复。
示例
redis 127.0.0.1:6379> zadd tutoriallist 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 sql
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 postgresql
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 postgresql
(integer) 0
redis 127.0.0.1:6379> zadd tutoriallist 0 postgresql
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE tutoriallist 0 10
1) "postgresql"
2) "redis"
3) "sql"