小白教程
所有教程
关于
Search
172.71.254.132
172.71.254.132
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“Redis 数据类型”的源代码
本页内容
上一节:
Redis_配置
下一节:
Redis_命令
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:Redis 数据类型}}[[Category:Redis 教程|5]] = Redis 数据类型 = Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 == String(字符串) == string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。 string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。 string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。 == <sample title="" desc="" lang="redis" hererun="1"> redis 127.0.0.1:6379> SET xiaobai "小白教程" OK redis 127.0.0.1:6379> GET xiaobai "小白教程" </sample> 在以上实例中我们使用了 Redis 的 '''SET''' 和 '''GET''' 命令。键为 xiaobai,对应的值为 '''小白教程'''。 '''注意:'''一个键最大能存储 512MB。 == Hash(哈希) == Redis hash 是一个键值(key=>value)对集合。 Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。 == DEL xiaobai 用于删除前面测试用过的 key,不然会报错:'''(error) WRONGTYPE Operation against a key holding the wrong kind of value''' <sample title="" desc="" lang="redis" hererun="1"> redis 127.0.0.1:6379> DEL xiaobai redis 127.0.0.1:6379> HMSET xiaobai field1 "Hello" field2 "World" "OK" redis 127.0.0.1:6379> HGET xiaobai field1 "Hello" redis 127.0.0.1:6379> HGET xiaobai field2 "World" </sample> 实例中我们使用了 Redis '''HMSET, HGET''' 命令,'''HMSET''' 设置了两个 field=>value 对, HGET 获取对应 '''field''' 对应的 '''value'''。 每个 hash 可以存储 232 -1 键值对(40多亿)。 == List(列表) == Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。 == <sample title="" desc="" lang="redis" hererun="1"> redis 127.0.0.1:6379> DEL xiaobai redis 127.0.0.1:6379> lpush xiaobai redis (integer) 1 redis 127.0.0.1:6379> lpush xiaobai mongodb (integer) 2 redis 127.0.0.1:6379> lpush xiaobai rabbitmq (integer) 3 redis 127.0.0.1:6379> lrange xiaobai 0 10 1) "rabbitmq" 2) "mongodb" 3) "redis" redis 127.0.0.1:6379> </sample> 列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。 == Set(集合) == Redis 的 Set 是 string 类型的无序集合。 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 === sadd 命令 === 添加一个 string 元素到 key 对应的 set 集合中,成功返回 1,如果元素已经在集合中返回 0。 <sample title="" desc="" lang="redis" hererun="1"> sadd key member </sample> == <sample title="" desc="" lang="redis" hererun="1"> redis 127.0.0.1:6379> DEL xiaobai redis 127.0.0.1:6379> sadd xiaobai redis (integer) 1 redis 127.0.0.1:6379> sadd xiaobai mongodb (integer) 1 redis 127.0.0.1:6379> sadd xiaobai rabbitmq (integer) 1 redis 127.0.0.1:6379> sadd xiaobai rabbitmq (integer) 0 redis 127.0.0.1:6379> smembers xiaobai 1) "redis" 2) "rabbitmq" 3) "mongodb" </sample> '''注意:'''以上实例中 rabbitmq 添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。 集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。 == zset(sorted set:有序集合) == Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 zset的成员是唯一的,但分数(score)却可以重复。 === zadd 命令 === 添加元素到集合,元素在集合中存在则更新对应score <sample title="" desc="" lang="redis" hererun="1"> zadd key score member </sample> == <sample title="" desc="" lang="redis" hererun="1"> redis 127.0.0.1:6379> DEL xiaobai redis 127.0.0.1:6379> zadd xiaobai 0 redis (integer) 1 redis 127.0.0.1:6379> zadd xiaobai 0 mongodb (integer) 1 redis 127.0.0.1:6379> zadd xiaobai 0 rabbitmq (integer) 1 redis 127.0.0.1:6379> zadd xiaobai 0 rabbitmq (integer) 0 redis 127.0.0.1:6379> ZRANGEBYSCORE xiaobai 0 1000 1) "mongodb" 2) "rabbitmq" 3) "redis" </sample>
返回至“
Redis 数据类型
”。
上一节:
Redis_配置
下一节:
Redis_命令