热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

怎么查询redis缓存的数据_学习笔记8Redis(二)

昨天学习了Redis的相关知识,今天用代码写写相关案例。首先是Jedis这个API,jedis集成了Redis的一些命令,用redis可以

昨天学习了Redis的相关知识,今天用代码写写相关案例。

首先是Jedis这个API,jedis集成了Redis的一些命令,用redis可以操作Redis数据库,首先要添加jedis的依赖

3397e53cca9a8aca64532f5efd1ebc5e.png

直接调用jedis的api完成对Redis单机版的操作:

ba8e7722ef78b3a20a23f610c9e7153b.png

由于直接调用效率会很低,就和jdbc操作数据库一样,频繁的连接关闭,造成性能的降低,所以可以使用连接池jedispool:

579fc4ae00d6c94b5bbad24e880d5d0c.png

jedis也可以对Redis集群进行操作,使用jedisCluster:

21e26ca2c21c15d7601f0eb09ff744bb.png

通过spring整合jedis:

操作单机版:创建工程,添加spring和jedis的坐标:

6da667581c0dee127985063b1678d332.png

写几个简单的接口:

33abeafb7203411a8c276879943c32d4.png

创建单机版的接口实现类:

283f7a74038b4e2591d08e77ebba8f29.png

配置文件applicationContext-Jedis.xml:

fd978d0b264de958cc04a609fcebf41f.png
扫描bean对象
981a36ee794cb0e9dfd69463bcc4712d.png
jedispool的配置
4a3879ce63de22cfa43f658d69c89eaa.png
配置bean
0d74e61b3a4129ecd1504042f165df77.png
配置jedispool的bean

测试单机版:

ee4241b43ea0e5dd0219bcccfd7dafee.png

操作redis集群:

创建jediscluster的实现类:

52bfe04c52008276cdd76b2681b45904.png

在配置文件中添加整合:

111bd12b8a62b8cb6b2b7dce2a538530.png

配置集群的bean(1):

bf46aaf9aba9c1f1a3976ef55524eaee.png

配置集群bean(2):

2bdceeb4b55bea2bcc6354e4274f1f6e.png

(3):

bff8f26a4df635e3f028af01d4c166a5.png

测试集群版:

2756b82f5f241cc04cb432dafe256478.png

Redis管理工具的使用:直接使用命令操作Redis很不方便,所以使用一个管理工具Redis desktop manager:下载之后安装,运行:

e32681d2c60a79356a808ef5199c34ec.png
点击连接

输入连接名,ip和监听端口,然后测试连接,点击ok:

486c4d95df4098fcfbfc33ac2f7765e5.png

crud小案例:在之前做过的dubbo中对user表操作的基础上加入查询缓存,这次直接把所有层放在一个工程下,不做分布开发便于操作,在pom中添加依赖,需要什么加什么

项目的大致结构如下:

0401a350b9206d4ddbdfb331e155732d.png

由于是将一个对象放到Redis中,所以使用了JsonUtil工具类,直接将传入或者返回的对象转为json格式,然后存入redis中,为了便于区分对象,所以用一个resources.properties文件放入存入redis的对象的前缀,加入对象id拼接成存入redis的key。

3937c91c895da77672e2a5a45dbcee6e.png
resources.properties
8298e112bcce3cea2cdb1278bd9b7fc4.png
使用注解获得该前缀的值

由于只在查询操作中使用redis,所以在查询的业务逻辑中加入如下代码:

41499f625749ac2e002f4d405a995e2c.png

先查询redis中是否有该对象,没有的话就执行从MySQL查询,查到之后放入redis之中,这样下次查询就直接从redis中查,为了不影响其他业务逻辑的正常执行,凡是涉及到redis操作的代码都放入到try-catch代码块中。

为了使redis查询缓存数据同步,所以在修改和删除操作中也要对redis进行修改和删除操作:

c5936c1ed7e0316292f35d488bd25af8.png
在修改操作中将修改后的对象重新存入redis中,由于key值之前已经存在,所以这次直接修改redis中的value为修改后的value,删除数据之后在redis中也将该条数据删除

今天学习redis相关的大致就是这些,运行结果什么的就不放了,明天学solr。



推荐阅读
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有