Redis支持五种基本数据类型:字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)。键值对就是String类型,用来存简单的键值,比如SET key value;列表用LPUSH/RPUSH添加元素,LPOP/RPOP取出,适合队列;集合用SADD添加,SMEMBERS查看,无序不重复;有序集合用ZADD加分值,ZRANGE按分排序。
Redis数据类型
Redis是一个高性能的键值存储系统,它支持相对较多的数据类型,这些数据类型都以键值对的形式存在。Redis支持以下数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、ZSet(有序集合)。
键值对(String)
String数据结构是简单的key-value类型,实际上是字节数组,可以存储任何内容,比如字符串、整数、序列化后的对象等。最大存储900MB的字节串。常用命令:SET key value、GET key、DEL key。
列表(List)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以把一个元素加入到列表的头部(左端)或者尾部(右端)。常用命令:LPUSH key value(从左推入)、RPUSH key value(从右推入)、LPOP key(从左弹出)、RPOP key(从右弹出)、LRANGE key start end(获取指定范围元素)。
集合(Set)
Redis的Set是string类型的无序集合。集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1)。常用命令:SADD key member(添加元素)、SREM key member(移除元素)、SMEMBERS key(获取所有元素)、SISMEMBER key member(检查元素是否存在)。
Redis String 类型
Redis的 String 类型可以用来存储字符串、整数、浮点数、JSON、二进制数据等。SET user:1:name "Jack" GET user:1:name 返回 "Jack"。 incr counter 自增整数。
List 示例
LPUSH mylist "world" LPUSH mylist "hello" 现在列表是 hello world。LRANGE mylist 0 -1 返回所有元素。
Set 示例
SADD myset "apple" "banana" "apple" 添加后 apple 只存一次。SMEMBERS myset 返回所有。SINTER set1 set2 求交集。
FAQ
Q: Redis String 类型能存多大?
A: 单个String值最大512MB。
Q: List 适合什么场景?
A: 消息队列、最新列表。
Q: Set 如何去重?
A: 自动不重复,SADD 重复忽略。
Q: 怎么获取有序集合前10?
A: ZRANGE key 0 9 WITHSCORES。