java代码操作redis

    科技2025-10-03  5

    Java操作redis

    常用的有 string(字符串) hash(哈希) list(列表)

    1.首先添加依赖

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

    Demo1

    package com.liyingdong.redis; import redis.clients.jedis.Jedis; /** * @author 李瀛东 * @site www.xiaomage.com * @company xxx公司 * @create 2020-10-06 16:45 * * * 讲解java代码操作redis * * string,hash,list * * 1.加载驱动 * 2.建立连接 * 3.ps...预定义对象 * 4.执行sql * 5.处理结果 * 6.关闭资源 * * * redis连接步骤 * 1.建立连接,连接后授权 * 2.使用redis * */ public class Demo1 { public static void main(String[] args) { Jedis jedis=new Jedis("192.168.32.134",6379); jedis.auth("123456"); System.out.println(jedis.ping()); /* String */ // jedis.set("name","zs"); // jedis.set("age","22"); // System.out.println(jedis.get("name")); /* * * hash */ // jedis.hset("user1","uname","ls"); // jedis.hset("user1","pwd","123456"); // jedis.hset("user1","sex","nv"); // System.out.println(jedis.hget("user1","uname")); // Map<String,String> user1= jedis.hgetAll("user1"); // for (Map.Entry<String, String> entry : user1.entrySet()) { // System.out.println("key:" + entry.getKey() + ",value:" + entry.getValue()); // } /* *list * * l代表left左边的意思 * r代表右边的意思 */ // jedis.lpush("hobby","a","b","c","d","e","f","g"); // System.out.println(jedis.lpop("hobby")); // System.out.println(jedis.rpop("hobby")); } }

    Demo2

    1.添加servlet的依赖

    <javax.servlet.version>4.0.0</javax.servlet.version> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>${javax.servlet.version}</version> <scope>provided</scope> </dependency> package com.liyingdong.redis; import redis.clients.jedis.Jedis; 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 李瀛东 * @site www.xiaomage.com * @company xxx公司 * @create 2020-10-07 20:47 * * * redis 在项目中的使用 * 查询 * 增删改 * */ @WebServlet("/list") public class DemoServlet 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 { Jedis jedis=new Jedis("192.168.32.134",6379); jedis.auth("123456"); String bookList = jedis.get("bookList"); if(null == bookList || "".equals(bookList)){ // 查询数据库 String mysqlDate="data"; // 将mysqlDate转成json数组串 jedis.set("bookList",mysqlDate); bookList= jedis.get("bookList"); req.setAttribute("msg","走了数据库拿数据"); req.setAttribute("bookList",bookList); req.getRequestDispatcher("/bookList.jsp").forward(req,resp); }else{ req.setAttribute("msg","直接从redis中取得数据"); req.setAttribute("bookList",bookList); req.getRequestDispatcher("/bookList.jsp").forward(req,resp); } } }

    bookList.jsp

    <%-- Created by IntelliJ IDEA. User: Administrator Date: 2020/10/7/0007 Time: 23:21 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</title> </head> <body> ${msg}:${bookList} </body> </html>

    可以开启F12来看redis的速度,这里只是死数据模拟

    1.第一次访问数据库

    2.获取redis中缓存

    Processed: 0.010, SQL: 8