Redis-使用Java代码操作Redis

本文介绍了如何使用Java进行Redis操作,包括在pom.xml中添加依赖、实例化Jedis、执行字符串、哈希及列表的操作,并提供了demo案例,详细展示了增删改查的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java访问redis

首先在pom.xml添加依赖

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

简单操作

实例化一个jedis

Jedis jedis = new Jedis("192.168.203.128",6379);
jedis.auth("123456");
System.out.println(jedis.ping());

操作字符串 添加键值

jedis.set("aaa","zs");//编辑
System.out.println(jedis.get("aaa"));//读取

在客户服务端就会出现对应值
在这里插入图片描述
操作哈希

	jedis.hset("userl", "uname","ls");
	jedis.hset("userl", "sex","男");
	
    System.out.println(jedis.hgetAll("userl"));
    System.out.println(jedis.hget("userl", "uname"));//指定

操作列表

	jedis.lpush("hobby","a","b","c","d","e","f","g");
	System.out.println(jedis.lpop("hobby"));
	System.out.println(jedis.lpop("hobby"));
	System.out.println(jedis.rpop("hobby"));

demo案例

测试

package com.chen;

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;
import java.util.Map;

/**
 * @author嘟嘟
 */
@WebServlet("/getData")
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.203.128",6379);
            jedis.auth("123456");
            //从缓存获取当前登录的用户信息
            Map<String,String> currentUser = jedis.hgetAll("currentUser");
            if(currentUser != null && currentUser.size()>0){
                req.setAttribute("msg","从缓存获取shuju");
                req.setAttribute("currentUser",currentUser);
            }else{
                //第一次登录,访问数据库
                req.setAttribute("msg","从数据库获取shuju");
                String uname = "mie";
                String upwd = "12345";
                //把数据库中对应的对象存到缓存中
                jedis.hset("currentUser","uname",uname);
                jedis.hset("currentUser","upwd",upwd);
                //此时能获取到值的原因是已经将数据储存到缓存中
                currentUser = jedis.hgetAll("currentUser");
                req.setAttribute("currentUser",currentUser);
            }
            req.getRequestDispatcher("home.jsp").forward(req,resp);
        }
}

jsp

<%--
  Created by IntelliJ IDEA.
  User: 17936
  Date: 2019/9/18
  Time: 15:15
  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}<br>
拿取到的数据:${currentUser}

</body>
</html>

首页第一次是读取数据库,后面读取缓存


		try {
			HttpServletRequest request = ServletActionContext.getRequest();
				//从缓存获取当前登录的用户信息
				String blogList = jedis.get("blogList");
				if (blogList !=null && blogList.length() > 0) {//
					request.setAttribute("blogList", JSON.parse(blogList));
				}
				else {//把数据库中对应的对象存到缓存中
					List<Map<String, Object>> blogList1 = this.blogDao.list(title, null);
					jedis.set("blogList", JSON.toJSONString(blogList1));
					request.setAttribute("blogList", blogList1);
				}
				
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "blogList";
	

实例操作增删改

public String add() {
		HttpServletRequest request = ServletActionContext.getRequest();
		Map<String,String[]> parameterMap = request.getParameterMap();
		try {
			//清空缓存
			jedis.del("blogList");
			//加入数据库
			this.blogDao.save(parameterMap);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		return "blogList";
	}
	
	public String del() {
		try {
		HttpServletRequest request = ServletActionContext.getRequest();
		//清空缓存
		jedis.del("blogList");
		// 数据库中删除博客
		this.blogDao.del(request.getParameterMap());
			
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		return "blogList";
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值