ylbtech-Redis-Sp:Redis支持的5大类型介绍 |
1、
1.String
存储字符串,不支持分页排序
1)string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
2)string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
3)string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储512MB。
2.Hash
存储key-value数据
1)Redis hash 是一个键值(key=>value)对集合。
2)Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
3.Set
存储无序集合
1)Redis的Set是string类型的无序集合。
2)集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
3)sadd 命令:添加一个 string 元素到 key 对应的 set 集合中,成功返回1,如果元素已经在集合中返回 0,如果 key 对应的 set 不存在则返回错误。
4.SortedSet
主要存储有序集合,StortSet添加元素指令Zadd key score member[[score , member] ] 会给每个元素的member绑定一个用于排序的值score , StroreSet会根据score的值的大小进行排序,在这里可以将一个需要排序的字段当作score排序,StoreSet指令中的Zervrange key start stop由可以返回指定区间的成员,意思就是可以用来分页 , 还有一个好处就是SortedSet的指令Zerm key member 可以根据key移除指定的成员,可以满足删除评论的要求,所以 SortedSet是用来分页的。
5.List
主要用来存储一个列表,列表中的每一个元素按元素的插入时的顺序进行保存,如果我们将评论模型按字段(排好)放入redis后再插入list中,就可以做到排序,但是其中数据删掉就乱了,list中的lrange key start stop 指令还能做分页,那么单纯使用list也能做到分页排序了,但是在这里,如果评论被删除,就需要到数据库重新查询一次放入到redis中,这样的话性能也不好,而且也不太优雅,就需要更新redis中的数据了,如果在这里可以删除指定的数据那就更好了,但是list中有lpop,rpop这两个指令,他们只能删除列的表头和表尾的数据,不能指定删除,所以在这里list也不太好。
2、