jedis实现操纵redis的常用api及使用场景
2023-09-11 14:15:07 时间
简单记录一下,和描述一下常用的业务场景。好记性不如烂笔头。
pom.xml
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<!--整合redis--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency>
场景1:浏览排行榜场景,比如说一个房屋列表,每次点进去详情,就会浏览数加1,而且,我们只取前10位,而且我们是按照点赞的数量来排序的。是不是有点小复杂?不用担心,redis两个命令就搞定。屌的一逼。
首先了解一下,zset这个集合的特性。有序列表 类似<Key,List<Map<key,value>>> 的类型 和hash差不多 但是,需要注意的是,他的值是很有讲究的,即是说他是有序的,肯定有个排序规则,所以,你要往里面放值,必须是
zadd zset 100 a 200 b 300 c key是zset 100 a 200 b 300 c 相当于list里面一个一个对象 100相当于分数,必须是int类型 a 是我们实际的值 也就是说 我们想插入值的时候,必须是按照这种 我这里是一口气插入三个值 key相同
java 的api 实现 看注释
private static final String HOT_HOUSE_KEY = "hot_house"; //点赞的key
//增加点赞的方法 public void increase(Long id) { try { Jedis jedis = new Jedis("127.0.0.1"); jedis.zincrby(HOT_HOUSE_KEY, 1.0D, id + ""); //每次为 值 id + "" 加1 // 0代表第一个元素,-1代表最后一个元素,保留热度由低到高末尾10个房产,因为zset是排序的, // 所以说默认的是从低到高,我们要保留前十名,我们就要把第一和倒数 第11之间的值移除掉 填坑 ~~这个是个错误,因为如果这样的话,那就永远只有10条了。错误逻辑
// 最主要是记住api的用法 这里就注释了~
// jedis.zremrangeByRank(HOT_HOUSE_KEY, 0, -11); jedis.close(); } catch (Exception e) { log.error(e.getMessage(),e); } } //得到点赞数的所有排行榜列表 从高到低排列 public List<Long> getHot() { try { Jedis jedis = new Jedis("127.0.0.1"); //因为是默认排序从低到高,所以我们要反过来取,指定区间内的成员。其中成员的位置按分数值递减(从大到小)来排列 Set<String> idSet = jedis.zrevrange(HOT_HOUSE_KEY, 0, -1); jedis.close(); List<Long> ids = idSet.stream().map(Long::parseLong).collect(Collectors.toList()); return ids; } catch (Exception e) { log.error(e.getMessage(), e); return Lists.newArrayList(); } }
相关文章
- redis实战笔记(3)-第3章 Redis命令
- redis 在 php 中的应用(Hash篇)
- 分布式缓存技术redis学习(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- [翻译] C# 8.0 新特性 Redis基本使用及百亿数据量中的使用技巧分享(附视频地址及观看指南) 【由浅至深】redis 实现发布订阅的几种方式 .NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐
- redis集群
- PHP+Redis 定长队列(redis.call)
- 87 爬虫 - scrapy-redis源码分析(queue)
- redis性能监控(一): Redis Info 命令 - 获取 Redis 服务器的各种信息和统计数值
- nginx+tomcat+redis负载均衡,实现session共享
- redis缓存雪崩、穿透、击穿的概念及解决思路
- Redis安装(Windows 最新版本redis 5.0.9,以及redis 4.0)
- Redis——redis的rdb和aof持久化
- Redis第八讲 Redis之Hash底层数据结构实现
- redis使用CacheCloud搭建(Redis云平台)搭建集群监控等等
- SpringBoot进阶-Redis数据类型及应用场景(二)
- 使用Aop+Redis+lua限流,优化高并发问题
- Redis超详细入门(图文结合)原来redis这么简单
- Linux Redis 主从复制,Redis slaveof replicaof主从复制,redis-sentinel哨兵
- Golang 实现 Redis(6): 实现 pipeline 模式的 redis 客户端
- J2EE分布式架构 dubbo+springmvc+mybatis+ehcache+redis分布式架构
- Redis_redis分布式锁-SETNX
- 浅析SpringDataRedis、RedisTemplate Api的使用及如何使用RedisTemplate操作Redis的5种数据类型、StringRedisTemplate和RedisTemplate的区别
- 【Redis入门笔记 07】数据库持久化
- windows下使用Redis
- Redis(1.19)redis内存消耗、redis内存优化
- Redis几个认识误区(转)
- 曹工说Redis源码(6)-- redis server 主循环大体流程解析
- 曹工说Redis源码(5)-- redis server 启动过程解析,以及EventLoop每次处理事件前的前置工作解析(下)