简单记录一下,和描述一下常用的业务场景。好记性不如烂笔头。

pom.xml

<!--整合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();
} }

jedis实现操纵redis的常用api及使用场景的更多相关文章

  1. Redis数据类型的常用API以及使用场景

    一.通用命令 1.keys  遍历出所有的key 一般不在生产环境使用 2.dbsize key的总数 3.exists key 4.del key  删除指定key-value 5.expire k ...

  2. Unity学习笔记(3):一些常用API和应用场景

    Mathf.Lerp(float a,float b,float t)插值函数,当a < b时往a中插入t,以此来实现颜色,声音等渐变效果. GameObject.FindWithTag(str ...

  3. jedis常用API

    一.Redis Client介绍 1.1.简介 Jedis Client是Redis官网推荐的一个面向java客户端,库文件实现了对各类API进行封装调用. Jedis源码工程地址:https://g ...

  4. Jedis 常用API使用

    使用Jedis操作Redis常用的API <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <depen ...

  5. Jedis对Redis的常用命令操作

    本篇主要总结一些Jedis对Redis的常用命令操作: 1.对key操作命令 2.对String操作命令 3.对List操作命令 4.对Set操作命令 5.对Hash操作命令 6.排序操作指令 一.项 ...

  6. Redis数据结构和常用API

    Redis是一个速度非常快的非关系型数据库,可以存储键与5中不同数据结构类型之间的映射.这5种数据结构分别是STRING(字符串).LIST(列表).SET(集合).HASH(散列).ZSET(有序集 ...

  7. Redis的常用JavaAPI(Jedis)实现

    一.  pom依赖: <!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency> & ...

  8. 12.Java连接Redis_Jedis_常用API

    上一篇总结我们使用我们本地的Eclipse中创建的jedis工程,链接到了我们处于VMware虚拟机上的Linux系统上的Redis服务,我们接下来讲一下jedis的一些常用的API. (1)jedi ...

  9. Jedis/JedisPool和Redis数据类型与特性

    1.介绍Jedis Jedis 是 Redis 的 java 版本客户端,使用Jedis可以连接 Redis的数据库,Jedis连接方式有三种Jedis/JedisPool 连接.ShardedJed ...

随机推荐

  1. Caffe2的安装

    源码下载 首先下载caffe2的源码:https://github.com/caffe2/caffe2 网上都建议使用git命令下载,因为caffe2依赖了很多第三方模块,git会根据依赖自动下载第三 ...

  2. Javascript中的闭包和C#中的闭包

    js和C#中都有闭包的概念,闭包本质上是一个对象,是指有权访问另一个局部作用域中的变量的对象(或函数,在C#中是委托).这个对象和函数/方法有关: 在js中,闭包是由于函数引用了局部变量形成的.在C# ...

  3. 学习 已经登录windows的情况下获取windows的密码

    官网 http://blog.gentilkiwi.com/mimikatz 下载地点 https://github.com/gentilkiwi/mimikatz/releases/latest 使 ...

  4. 记一次配置oh my zsh的坑

    oh-my-zsh:https://github.com/robbyrussell/oh-my-zsh prezto:https://github.com/sorin-ionescu/prezto 我 ...

  5. C/S架构引用Lodop 如何在C#调用web打印控件Lodop

    lodop是web打印控件,引用安装目录下的ocx文件,可以在c/s架构中使用. 该文件所在路径:C:\Program Files (x86)\MountTaiSoftware\Lodop 有32位和 ...

  6. DOM 操作技术【JavaScript高级程序设计第三版】

    很多时候,DOM 操作都比较简明,因此用JavaScript 生成那些通常原本是用HTML 代码生成的内容并不麻烦.不过,也有一些时候,操作DOM 并不像表面上看起来那么简单.由于浏览器中充斥着隐藏的 ...

  7. BZOJ2938[Poi2000]病毒——AC自动机

    题目描述 二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码.如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的.现在委员会已经找出了所有的病毒代码段,试问,是否 ...

  8. ubuntu eclipse 无法打开

    报错: The catalog could not be loaded... 这个问题,我上网查了很久.. 基本上网上可用的办法我都试过了.全是失败的 firefox+autoproxy,shadow ...

  9. idea使用docker-maven-plugin插件将项目编译为docker镜像到远程linux服务器 原

    在使用idea开发时,直接docker-maven-plugin插件,把项目编译成docker镜像,然后通过docker:push推送到linux服务器,非常简单,快捷,也避免了手动打包,然后拷贝wa ...

  10. [算法进阶0x10]基本数据结构A作业总结

    在线题目\(oj\)评测地址:https://xoj.red/contests/show/1237 T1-Editor(hdu4699) 题目描述 维护一个整数序列的编辑器,有以下5种操作,操作总数不 ...