有序集合类型是Redis五种数据类型中最高级的.也是最复杂的类型.有序集合具有集合类型的特性,在其基础上给每个元素关联了一个分值,或称为权重,操作时既可以在添加元素时指定分值,也可以单独修改集合中某一个元素的分值.使用时可以按分值排序(从低到高或从高到低)并顺序读取全部或某一范围内的元素,或者获得某一分值范围内的元素.利用这一特点,可以很方便的实现排行榜.热门文章等功能. 在本节的实例中,使用有序集合类型为商品管理模块添加一个按浏览量排序的功能. 一.常用命令 import java.util.…
从上一篇的实例中可以看出,用字符串类型存储对象有一些不足,在存储/读取时需要进行序列化/反序列化,即时只想修改一项内容,如价格,也必须修改整个键值.不仅增大开发的复杂度,也增加了不必要的性能开销. 一个更好的选择是使用散列类型,或称为Hash表.散列类型与Java中的HashMap相似,是一组键值对的集合,且支持单独对其中一个键进行增删改查操作.使用散列类型存储前面示例中的商品对象,结构如下图所示: 下面先通过示例代码来看散列类型常用的操作命令 一.常用命令 HashExample.java i…
有序集合类型 上节我们一起学习了集合类型,感受到了redis的强大.现在我们接着学Redis的最后一个类型——有序集合类型. 有序集合类型,大家从名字上应该就可以知道,实际上就是在集合类型上加了个有序而已.Redis中的有序集合类型,实际上是在集合类型上,为每个元素都关联一个分数,有序实际上说的是分数有序,我们根据分数的范围获取集合及其他操作.集合的元素依然是不能够相同的,但是分数可以相同. 下面列举有序集合和类型和列表类型的相似处: ①两者都是有序的(废话!) ②两者都可以获得某一范围的元素…
经过上一篇基于Redis散列类型的改造后,实战练习中的商品管理已经具备了增加.修改整体.修改部分属性和分页查询功能,但仍然不支持删除商品的功能.这是因为商品总数是以一个自增数字记录的,且关联了新商品key的生成,删除商品后不能直接减小总数,进而会影响到分页的计算. 在本节中将完善这个功能,使用一个新的数据类型 - 列表类型(List)来保存所有商品ID,计算商品总量时通过计算列表类型长度获得,删除商品时也同时删除列表中的ID. 列表类型用于存储可重复的字符串列表,内部按照添加的先后保持顺序,在列…
Redis集合类型的基础功能也是存储字符串列表,和列表类型的区别是字符串不能重复且没有顺序.当然,存储元素唯一性也可以通过应用程序保证,单从这一点上并没有体现出对比列表类型的特点. 其实,集合类型的一个鲜明特性是可以对多个集合求交集.并集和差集.例如在一个社交应用中,A用户有C.D两个好友,B用户有D.E两个好友,可用通过sinter A B的命令很方便的查出A和B的共同好友. 本节中将利用这个特性给实践练习中的商品管理模块添加一个按分类查找商品的功能. 一.常用命令 import java.u…
字符串类型是Redis中最基本的数据类型,能存储任何形式的字符串和和二进制数据.本文以代码形式列举常用的操作命令,并在实践部分演示一个简单的商品管理功能,实现了通常使用关系型数据库开发的增改查功能,注意并没有实现删除功能,这将放在后面的列表类型中去实现. 一.常用命令 pom.xml <dependencies> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis<…
1.增加元素,修改存在元素的分数 127.0.0.1:6379> zadd score 99 a 88 b 66 c (integer) 3 127.0.0.1:6379> ZADD score 77 c (integer) 0 2.获取某个元素的分数 127.0.0.1:6379> ZSCORE score b "88" 3.获取排名在某个范围内的元素列表 127.0.0.1:6379> ZRANGE score 0 1 1) "c" 2)…
文章目录 前言 一.字符串类型 二.哈希类型 三.列表类型 四.集合类型 五.有序集合类型 六.通过命令 前言 redis的数据结构 redis存储的是key,value格式的数据,其中的key是字符串,value有5种不同的数据结构 value的数据结构 1.字符串类型 string 2.哈希类型 hash 3.列表类型 list 4.集合类型 set 5.有序集合类型 sortedset 提示:本博客仅为了记录自我的学习过程,理清技术思路 一.字符串类型 1.存储:set key value…
3.6有序集合类型 3.6.1介绍 在集合类型基础上,为集合中每个元素都关联了一个分数,故可以获得 分数最高(最低)的前N个元素,可以获得指定范围内的元素等 有序集合中每个元素不同,但它们的分数却可以相同 有序集合和列表相同点: 都是有序的 都可以获得某一范围元素 有序集合和列表区别: 列表是通过双链表实现的 有序集合是使用散列表和跳跃表实现的 列表中不能简单地调整某个元素 但是集合可以(通过更改这个元素的分数) 有序集合要比列表更耗费内存 3.6.2命令 增加元素 zadd key score…
python操作redis缓存-SortSet有序集合类型,可以理解为有序列表 有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来做排序. zadd(name, *args, **kwargs)在name对应的有序集合中添加元素如: zadd('zz', 'n1(值)', 1(分), 'n2(值)', 2(分)) 值表示是元素值,分可以理解为是元素序号 zadd('zz', 'n1', 1, 'n2'…