SpringBoot:Redis中的zset
zset被描述为有序集合,但RedisTemplate的OpsForZSet().range方法的返回值是set,那么:
这样直接查询zset返回set的操作会使得元素失去顺序吗?
先明确:Set是什么?Set一定无序吗?
Set是接口,Set接口的其中一个最常用的实现类HashSet是无序的,而Set可以做别的实现类如TreeSet,是可以保证元素有序的,但代价是查询效率做不到O(1)。
OpsForZSet().range方法的返回值是set接口,而这个接口由redis自行实现,保证元素依然有序。
我们来测试一下:
@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
public class Tests{
@Autowired
private RedisTemplate redisTemplate;
@Test
public void ZSetTest(){
String key = "Test";
redisTemplate.opsForZSet().add(key, "a", 1);
redisTemplate.opsForZSet().add(key, "b", 2);
redisTemplate.opsForZSet().add(key, "c", 3);
redisTemplate.opsForZSet().add(key, "d", 4);
redisTemplate.opsForZSet().add(key, "e", 5);
redisTemplate.opsForZSet().add(key, "f", 6);
Set<Character> set = redisTemplate.opsForZSet().range(key, 0, -1);
System.out.println(set);
}
}
Output: [a, b, c, d, e, f]
可以看到确实是有序的
SpringBoot:Redis中的zset的更多相关文章
- 7、Redis中对ZSet类型的操作命令
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ---------- ...
- Python(Redis 中 Set/Zset 类型数据和其他操作)
1.redis 基本操作命令 Set 操作 Set 集合就是不允许重复的列表 无序集合 sadd(name,values) 给 name 对应的集合中添加 1 个或多个元素 import redis ...
- Redis-技术专区-让你彻底会使用“Redis中最陌生且最强大的集合”(ZSET)【前篇】
前言介绍 很多小伙伴都跟我说,redis中,ZSet(有序集合)是他们最陌生的集合,同时也是觉得特别复杂的集合之一,在开发过程中经常会用到它,而且也是大家最不太有把握使用的集合,所以笔者就从ZSet集 ...
- Springboot与ActiveMQ、Solr、Redis中分布式事物的初步探索
Springboot与ActiveMQ.Solr.Redis中分布式事物的初步探索 解决的场景:事物中的异步问题,当要求数据库与solr服务器的最终一致时. 程序条件: 利用消息队列,当数据库添加成功 ...
- Spring-Boot项目中配置redis注解缓存
Spring-Boot项目中配置redis注解缓存 在pom中添加redis缓存支持依赖 <dependency> <groupId>org.springframework.b ...
- SpringBoot项目中,Redis的初次使用
1.引入Redis依赖包,在application.yml中配置redis <dependency> <groupId>org.springframework.boot< ...
- SpringBoot + Redis:基本配置及使用
注:本篇博客SpringBoot版本为2.1.5.RELEASE,SpringBoot1.0版本有些配置不适用 一.SpringBoot 配置Redis 1.1 pom 引入spring-boot-s ...
- Redis系列之key操作命令与Redis中的事务详解(六)
序言 本篇主要目的有二: 1.展示所有数据类型中key的所有操作命令,以供大家学习,查阅,更深入的挖掘redis潜力. 2.掌握redis中的事务,让你的数据完整性一致性拥有更优的保障. redis命 ...
- Redis中的关系查询(范围查询,模糊查询等...)
本文部分转自于:http://blog.csdn.net/dc_726/article/details/42784317 本文对Redis如何保存关系型数据,以及如何对其匹配.范围.模糊查询进行举例讲 ...
随机推荐
- OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "ip": executable file not found in $PATH: unknown (Docker容器没有ip addr命令:exec ip addr 报错)
一.报错 1.报错信息1: OCI runtime exec failed: exec failed: container_linux.go:380: starting container proce ...
- Oracle中查找某个点半径范围内的所有经纬度(优化)
需求: 已知一个点的经纬度,需要从表中找出以这个点为中心,半径M米范围内的所有经纬度数据. 假设现有表 TAB_LONG_LAT_DATA,字段如下: ID INTE ...
- ts中 any、unknown、never 、void的区别
any.unknown.never .void的区别 any 表示任意类型,设置为any相当于对该变量关闭了TS的类型检测.不建议使用 let a;(隐式any) //声明变量不赋值,就是any 等效 ...
- 用c++语言socket库函数实现服务端客户端聊天室
客户端 /* * 程序名:client.cpp,此程序用于演示socket的客户端 * 作者:C语言技术网(www.freecplus.net) 日期:20190525 */ #include < ...
- MySQL8小时问题
一.问题 获取MySQL连接,8小时内无请求自动断开连接. 二.解决 2.1 分析 MySQL服务器默认的"wait_timeout"是28800秒即8小时,意味着如果一个连接的空 ...
- 安装Net-Tools到CentOS(YUM)
Net-Tools是一个Linux系统中基本的网络工具集,其集成了常用的网络管理命令"ifconfig.netstat.arp.route等". 运行环境 系统版本:CentOS ...
- React BrowserHistory 踩坑实录 布置到服务器Nginx上各种静态文件、二级地址404
由于BrowserHistory访问的是文件真实地址不仅需要前端配置package.json还需要运维端配置一下网站Nginx设置环境: "react": "^17.0. ...
- 1.3温度转换(中国大学Mooc-Python 语言程序设计)
温度转换 温度刻画的两种不同体系 1.摄氏度:(中国等世界大多数国家使用) 以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画 2.华氏度:(美国.英国等国家使用) 以1标准大气压 ...
- CabloyJS部署了一套演示站点
为了方便大家快速体验和了解CabloyJS的风格和特性,全新部署了一套演示站点.对于初次接触CabloyJS的开发者,不用下载新建项目,就可以直接体验CabloyJS了 在线演示 场景 链接/二维码 ...
- java提前工作、第一个程序
java提前工作 我们学习编程肯定会 运用到相应的软件 在这里 我个人推荐 eclipse.idea 这里的软件呢 都是用我们的java编程出来的,那它也需要用java来支持他的开发环境 这里就运用到 ...