java代码操作Redis命令&Redis在maven项目中的运用

    科技2026-04-21  2

    转载请标明出处:https://blog.csdn.net/men_ma/article/details/106847165. 本文出自 不怕报错 就怕不报错的小猿猿 的博客

    java代码操作Redis命令&Redis在maven项目中的运用

    前言Redis命令的数据类型java代码操作Redis命令1. 导入pom依赖(Redis连接服务端的jar包)一个坑(网上很难找到办法)问题的原因:解决的方法: 2.利用java代码操作Redis:Demo1.java: Redis在maven项目中的运用1.在查询中使用Redis的逻辑1.导入servlet依赖2.建立BookListServlet.java类3.建立bookList.jsp页面:4.运行效果 2.Redis在增删改中的使用逻辑

    前言

    Redis是非关系型数据库,但本质还是数据库

    Redis命令的数据类型

    string(字符串) hash(哈希) list(列表) set(集合) zset(sorted set:有序集合

    java代码操作Redis命令

    1. 导入pom依赖(Redis连接服务端的jar包)

    <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>

    一个坑(网上很难找到办法)

    博主在导入Redis依赖时遇到了导不了Redis包,不能实例化Redis的问题,卡了很久才得以解决,在此希望其他人不要踩此坑,现把解决方法贴出此次

    问题的原因:

    是因为博主的maven的版本与idea的版本号不兼容的问题,博主的版本:idea(2018)&&maven(3.6.2)版本

    解决的方法:

    把maven的版本降低,这时博主在maven的官网上下载了3.5.0版本的,然后重新配置一下maven就可以了 maven下载网址(建议下载与自己idea版本兼容的) 下载完后重新配置maven:

    2.利用java代码操作Redis:Demo1.java:

    package com.xiaoqing; import redis.clients.jedis.Jedis; import javax.sound.sampled.Port; import java.lang.reflect.Field; import java.util.Map; /** * @author 晴sister * @site https://blog.csdn.net/men_ma * @company * @create 2020-10-0816:41 * * mysql连接步骤: * 0.导入pom依赖(mysql驱动包) * 1.加载驱动(Class.forName) * 2.建立连接(url、username、password) * 3.获取预定义sql处理对象prepareStatement * 4.执行prepareStatement * 5.处理结果集 * 6.释放资源 * * * redis连接: * 0.导入pom依赖(Redis连接服务端的jar包) * 1.建立连接(jedis) * 2.直接通过jedis实例去操作数据库 * * */ public class Demo1 { public static void main(String[] args) { Jedis jedis=new Jedis("192.168.13.129", 6379); jedis.auth("123456"); // 校验Redis服务正常,然后通过jedis连接服务正常 // System.out.println(jedis.ping()); // 操作string // jedis.set("sname","zsf"); // System.out.println(jedis.get("sname")); // 操作hash // 所有的值都在user中 // User user=new User("ww","女","beijing","324332"); // for (Field field : user.getClass().getDeclaredFields()) { // field.setAccessible(true); // try { // System.out.println(field.getName() + ": " + field.get(user).toString()); // jedis.hset("user1",field.getName(),field.get(user).toString()); // } catch (IllegalAccessException e) { // e.printStackTrace(); // } // } // 取单个值 // System.out.println(jedis.hget("user1", "usex")); // 取多个值 // Map<String, String> user1 = jedis.hgetAll("user1"); // for (Map.Entry<String, String> entry : user1.entrySet()) { // System.out.println(entry.getKey() + " : " + entry.getValue()); // } // jedis.hset("user1","uname","lisi"); // jedis.hset("user1","usex","发货"); // jedis.hset("user1","age","12"); // 操作list // jedis.lpush("hobby","a","b","c","d","e","f","g"); System.out.println(jedis.lpop("hobby")); System.out.println(jedis.rpop("hobby")); } }

    Redis在maven项目中的运用

    1.在查询中使用Redis的逻辑

    1.导入servlet依赖

    <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency>

    2.建立BookListServlet.java类

    BookListServlet.java:

    package com.xiaoqing; import redis.clients.jedis.Jedis; import javax.print.DocPrintJob; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * @author 晴sister * @site https://blog.csdn.net/men_ma * @company * @create 2020-10-0822:18 */ @WebServlet("/list") public class BookListServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 先从Redis里面去书籍的前十条数据 Jedis jedis=new Jedis("192.168.13.129", 6379); jedis.auth("123456"); // 字符串booklist存放的是,json数据字符串 List<Book> -->json // 如果需要通过json数组传做jsp页面展示的话,需要将json数据字符串----》List<Book> jackSon String bookList = jedis.get("bookList"); if(null==bookList||"".equals(bookList)){ // 此时意味着是第一次查询,那么需要走数据库mysql System.out.println("先走数据库做书籍列表的查询。。。。"); String list="从mysql数据库中查询出十条数据,再转成json串。。。"; jedis.set("bookList",list); req.setAttribute("jspList","数据来源于mysql"+jedis.get("bookList")); }else{ // 意味着不是第一次查询,那么就可以将数据返回了 req.setAttribute("jspList","数据来源于Redis"+bookList); } req.getRequestDispatcher("bookList.jsp").forward(req,resp); } }

    3.建立bookList.jsp页面:

    <%-- Created by IntelliJ IDEA. User: zjjt Date: 2020/10/8 Time: 22:33 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page isELIgnored="false" %> <html> <head> <title>书籍列表</title> </head> <body> 书籍列表展示页数据:${jspList} </body> </html>

    4.运行效果

    Redis数据库中: 这是第一次发送请求的效果:

    这是第二次发送请求的效果:

    2.Redis在增删改中的使用逻辑

    Processed: 0.010, SQL: 9