ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 2.2 redis数据类型 ##2.2.1 字符串 Redis 字符串是一个字节序列。 在 Redis 中字符串是二进制安全的,这意味着它们没有任何特殊终端字符来确定长度,所以可以存储任何长度为 512 兆的字符串。 ```bash redis 127.0.0.1:6379> SET name "liudanbing" OK redis 127.0.0.1:6379> GET name "liudanbing" ``` 在上面的例子中,SET 和 GET 是 Redis 命令,name 和 "liudanbing" 是存储在 Redis 的键和字符串值。 ##2.2.2 哈希 Redis哈希是键值对的集合。 Redis哈希是字符串字段和字符串值之间的映射,所以它们用来表示对象。 ```bash 127.0.0.1:6379> HMSET user:1 username liudanbing password ace points 200 OK 127.0.0.1:6379> HGETALL user:1 1) "username" 2) "liudanbing" 3) "password" 4) "ace" 5) "points" 6) "200" ``` 在上面的例子中,哈希数据类型用于存储包含用户基本信息的用户对象。 这里 HSET,HGETALL 是 Redis 命令同时 user:1 也是一个键。 ##2.2.3 列表 Redis 列表是简单的字符串列表,通过插入顺序排序。可以添加一个元素到 Redis 列表的头部或尾部。 ```cpp redis 127.0.0.1:6379> lpush tutoriallist redis (integer) 1 redis 127.0.0.1:6379> lpush tutoriallist mongodb (integer) 2 redis 127.0.0.1:6379> lpush tutoriallist rabitmq (integer) 3 redis 127.0.0.1:6379> lrange tutoriallist 0 10 1) "rabitmq" 2) "mongodb" 3) "redis" ``` 列表的最大长度为 232 - 1 个元素(4294967295,每个列表的元素超过四十亿)。 ##2.2.4 集合 Redis 集合是字符串的无序集合。 在 Redis 可以添加,删除和测试成员存在的时间复杂度为 O(1)。 ```bash 127.0.0.1:6379> sadd myset redis (integer) 1 127.0.0.1:6379> sadd myset mongodb (integer) 1 127.0.0.1:6379> sadd myset rabitmq (integer) 1 127.0.0.1:6379> sadd myset rabitmq (integer) 0 127.0.0.1:6379> smembers myset 1) "mongodb" 2) "redis" 3) "rabitmq" ``` 注:在上面的例子中 rabitmq 被添加两次,但由于它是只集合具有唯一特性。集合中的成员最大数量为 232 - 1(4294967295,每个集合有超过四十亿条记录)。 ##2.2.5 排序集合 不同的是,一个有序集合的每个成员都可以排序,就是为了按有序集合排序获取它们,按权重分值从最小到最大排序。虽然成员都是独一无二的,按权重分数值可能会重复。 ```cpp 127.0.0.1:6379> zadd mysortset 0 redis (integer) 1 127.0.0.1:6379> zadd mysortset 2 mongodb (integer) 1 127.0.0.1:6379> zadd mysortset 1 rabitmq (integer) 1 127.0.0.1:6379> ZRANGEBYSCORE mysortset 0 1000 1) "redis" 2) "rabitmq" 3) "mongodb" ``` 全部数据类型相关操作指令在 http://redis.cn/commands.html有详细介绍