java操作redis
demo1
这里主要是对五大存储类型的操作
string(字符串)
hash(哈希)
list(列表)
set(集合)
zset(sorted set:有序集合)
pom依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
package com.wt;
import redis.clients.jedis.Jedis;
/**
* @author吴
* @company
* @create 2019-09-18 16:35
*
*讲解的是java代码去操作redis
*连接redis
* 操作字符串
* 操作哈希
* 操作列表list
*
*/
public class demo1 {
public static void main(String[] args) {
Jedis jedis = new Jedis("192.168.214.129",6379);
jedis.auth("123456");
System.out.println(jedis.ping());
// 操作字符串
// jedis.set("aa","zd");
// System.out.println(jedis.get("aa"));
// 操作哈希
// jedis.hset("user1","uname","ls");
// jedis.hset("user1","sex","男");
// System.out.println(jedis.hgetAll("user1"));
// System.out.println(jedis.hget("user1", "uname"));
//
//操作列表
// jedis.lpush("hobby","1","2","3","4","5","6");
// System.out.println(jedis.lpop("hobby"));
// System.out.println(jedis.lpop("hobby"));
// System.out.println(jedis.rpop("hobby"));
}
}
demoServlet
package com.wt;
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吴
* @company
* @create 2019-09-18 16:48
*/
@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.214.129",6379);
jedis.auth("123456");
//获取当前登录用户的用户信息
Map<String, String> user = jedis.hgetAll("User");
if(user!=null &&user.size()>0){
req.setAttribute("msg","从缓存中获取数据");
req.setAttribute("User",user);
}
else{
//等一次登录,第一次访问首页
req.setAttribute("msg","从数据库中获取数据");
String uname = "ls";
String upwd = "12345";
//接下来把数据库中的对应对象存储到缓存中
jedis.hset("User","uname","ls");
jedis.hset("User","upwd","12345");
//此時獲取到職 原因是上面已经存储到了缓存中
user = jedis.hgetAll("User");
req.setAttribute("User",user);
}
req.getRequestDispatcher("/home.jsp").forward(req,resp);
}
}
jsp
<%--
Created by IntelliJ IDEA.
User: MRCHENIKE
Date: 2019/9/18
Time: 16:48
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>
博客主页<br>
拿取数据方式 ${msg}<br>
拿取到的数据:${User}
</body>
</html>
//获取redis中的数据
String blogListJsonStr = jedis.get("blogList");
//如果redis中有值
if(blogListJsonStr!= null && blogListJsonStr.length() > 0) {
// 使用redis
request.setAttribute("blogList", JSON.parse(blogListJsonStr));
}
else {
//从数据库中查询数据
List<Map<String, Object>> blogList = this.blogDao.freemarker_list(title, null);
jedis.set("blogList", JSON.toJSONString(blogList));
request.setAttribute("blogList", 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";
}