Redis-安装和命令操作

(https://blog.csdn.net/qq_45174759/article/details/102525843)上,演示Redis使用Java代码操作,以及在项目中的实际应用。

使用Java代码操作Redis
Demo1.java
代码如下:

package com.chenkang;import redis.clients.jedis.Jedis;/*** @author陈康* @site www.chenkang.com* @company xxx公司* @create  2019-10-13 10:29*/
public class Demo1 {public static void main(String[] args) {Jedis jedis=new Jedis("192.168.149.129",6379);jedis.auth("123456");System.out.println(jedis.ping());/*String(字符串)*///存值
//        jedis.set("name","hc");
//        jedis.set("sex","男");//取值
//        System.out.println(jedis.get("name"));/*哈希(Hash)*/
//        jedis.hset("user","name","hc");
//        jedis.hset("user","sex","男");
//        jedis.hset("user","age","20");
//        jedis.hset("user","pwd","375199");
//        System.out.println(jedis.hget("user","naem"));
//        Map<String, String> user = jedis.hgetAll("user");
//        for (Map.Entry<String, String> e : user.entrySet()) {
//            System.out.println("key:"+e.getKey()+",value:"+e.getValue());
//        }/*列表(List)*/jedis.lpush("hobby","a","b","c","d");System.out.println(jedis.lpop("hobby"));System.out.println(jedis.rpop("hobby"));}
}

项目中的应用演示例子
查询中使用redis的逻辑
如图所示:

redis在增删改中的使用
如图所示:

Demoservlet.java
代码如下:

package com.chenkang;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.hc.com* @company xxx公司* @create  2019-10-14 01:13*/
@WebServlet("/demo1")
public class Demoservlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req,resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Jedis jedis=new Jedis("192.168.149.129",6379);jedis.auth("123456");String booklist = jedis.get("booklist");if(booklist==null || "".equals(booklist)){//模拟实际项目开发需求,在项目中运用redis//查询数据库String mysqldata="data";//将mysqldata数据源转成json数组串jedis.set("booklist",mysqldata);booklist = jedis.get("booklist");req.setAttribute("mag","走了数据库数据");req.setAttribute("booklist",booklist);req.getRequestDispatcher("/booklist.jsp").forward(req,resp);}else{req.setAttribute("mag","直接从redis里面拿了数据");req.setAttribute("booklist",booklist);req.getRequestDispatcher("/booklist.jsp").forward(req,resp);}}
}

booklist.jsp

<%--Created by IntelliJ IDEA.User: machenikeDate: 2019/10/13Time: 11:53To 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>
${mag}:${booklist}
</body>
</html>

效果如图所示:
第一次访问

第二次访问

项目实战演示(利用的是原生mvc框架演示)

BookAction.java
代码如下:

package com.chenkang.web;import com.alibaba.fastjson.JSON;
import com.hc.dao.BookDao;
import com..entity.Book;
import com.hc.framework.ActionSupport;
import com.hc.framework.ModelDrivern;
import com.hc.util.PageBean;
import redis.clients.jedis.Jedis;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.SQLException;
import java.util.List;public class BookAction extends ActionSupport implements ModelDrivern<Book> {private Book book = new Book();private BookDao bookDao = new BookDao();/*** 分页查询* @param req* @param resp* @return*/public String list(HttpServletRequest req,HttpServletResponse resp) {PageBean pageBean = new PageBean();pageBean.setRequest(req);try {List<Book> list = this.bookDao.list(book, pageBean);Jedis jedis=new Jedis("192.168.149.129",6379);jedis.auth("123456");String booklist = jedis.get("booklist");if(booklist==null || "".equals(booklist)){System.out.println("先从mysql数据库拿数据,很慢");String mysqldata= JSON.toJSONString(list);jedis.set("booklist",mysqldata);booklist = jedis.get("booklist");req.setAttribute("bookList",list);req.setAttribute("pageBean", pageBean);}else{System.out.println("直接从redis拿数据,很快");req.setAttribute("bookList", JSON.parse(booklist));req.setAttribute("pageBean", pageBean);jedis.del("booklist");System.out.println("查询方法更新缓存");}} catch (InstantiationException | IllegalAccessException | SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return "list";}/*** 跳转到增加或者修改页面* @param req* @param resp* @return*/public String preSave(HttpServletRequest req,HttpServletResponse resp) {
//      bid的类型是int类型,而int类型的默认值是0,如果jsp未传递bid的参数值,那么bid=0if(book.getBid() == 0) {System.out.println("增加逻辑.....");}else {
//          修改数据回显逻辑        try {
//              查单个Book b = this.bookDao.list(book, null).get(0);req.setAttribute("book", b);} catch (InstantiationException | IllegalAccessException | SQLException e) {e.printStackTrace();}}
//      新增页面与修改页面是同一个jspreturn "edit";}/*** 新增* @param req* @param resp* @return*/public String add(HttpServletRequest req,HttpServletResponse resp) {try {int add = this.bookDao.add(book);if(add>0){//           更新缓存Jedis jedis=new Jedis("192.168.149.129",6379);jedis.auth("123456");jedis.del("booklist");System.out.println("增加方法更新缓存");}} catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException| SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}
//      新增完了后需要刷新页面return "toList";}/*** 修改* @param req* @param resp* @return*/public String edit(HttpServletRequest req,HttpServletResponse resp) {try {int edit = this.bookDao.edit(book);if(edit>0){//          更新缓存Jedis jedis=new Jedis("192.168.149.129",6379);jedis.auth("123456");jedis.del("booklist");System.out.println("修改方法更新缓存");}} catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException| SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}
//      修改完了后需要刷新页面return "toList";}/*** 删除* @param req* @param resp* @return*/public String del(HttpServletRequest req,HttpServletResponse resp) {try {int del = this.bookDao.del(book);if(del>0){//          更新缓存Jedis jedis=new Jedis("192.168.149.129",6379);jedis.auth("123456");jedis.del("booklist");System.out.println("删除方法更新缓存");}} catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException| SQLException e) {e.printStackTrace();}
//      新增完了后需要刷新页面return "toList";}@Overridepublic Book getModel() {return book;}
}


时间对比图。如图所示:

java操作redis相关推荐

  1. java redis remove_最全的Java操作Redis的工具类

    RedisUtil 当前版本:1.1 增加更全的方法,对以前的部分方法进行了规范命名,请放心替换成新版本. 介绍 最全的Java操作Redis的工具类,使用StringRedisTemplate实现, ...

  2. 【redis】java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用

    java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用 //重新设置过期时间为30分钟,刷新时间 redisTemplate.expire(MsOp ...

  3. Redis 笔记之 Java 操作 Redis(Jedis)

    Java 操作 Redis 环境准备 引入依赖 创建 jedis 对象 操作 Key 相关 API 操作 String 相关 API 操作 List 相关 API 操作 Set 的相关 API 操作 ...

  4. java操作redis简单示例

    java操作redis简单示例     初学redis,在java语言和环境下完成redis的入门学习.              首先,官网下载源码,编译,安装,修改配置文件redis.conf中的 ...

  5. Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅)

    Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅) 1. 配置环境 在SpringBoot2.0版本以后,原来使用的jedis被替换成为了let ...

  6. Java操作Redis存储HashMap对象类型数据

    背景描述 关于JAVA去操作Redis时,如何存储一个对象的数据,这是大家非常关心的问题,虽然官方提供了存储String,List,Set等等类型,但并不满足我们现在实际应用.存储一个对象是非常常见的 ...

  7. JAVA操作REDIS执行原子操作

    JAVA操作REDIS执行原子操作 JAVA操作REDIS执行原子操作 为什么要使用原子操作 JAVA操作REDIS执行原子操作 为什么要使用原子操作 众所周知,redis 作为数据库的前置库,给数据 ...

  8. 如何用java操作Redis缓存设置过期时间

    如何用java操作Redis缓存设置过期时间?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获. 在应用中我们会需要使用red ...

  9. 不要再找了,Java操作Redis、Spring整合Redis及SpringBoot整合Redis这里都有

    文章开始之前先抛出一个问题:Jedis.Lettuce.Redisson以及RedisTemplate几者之间有什么区别,又有什么联系? 如果你心中已经很清晰的有了答案,那么本文你可以很轻松的阅读过去 ...

  10. 使用Java操作Redis(二)

    上篇文章中我们可以看到,通过自己动手编码来操作Redis是相当繁琐的,实际上我们在重复制造轮子.Redis网站上列举出了一些方便操作Redis的常用工具. 可供Java选择的比较多,这里介绍一下Jed ...

最新文章

  1. 遗传:细菌、真菌和动植物的泛基因组研究进展
  2. NFS服务基本配置及使用
  3. 极具潜力的新兴职业!
  4. php试卷分析,试卷分析失分原因和改进措施
  5. FCoE 不是×××
  6. CentOS 7下搭建LAMP并把MySQL单独分离
  7. 带中文索引的ListView 仿微信联系人列表
  8. Hitv8 文件批量重命名工具
  9. 国家自科基金人工智能项目比较:西电第一 清华第二 电子科大第三
  10. ndk-build生成.so
  11. 大数据Hadoop复习笔记
  12. qml textarea出现滚动条
  13. 计算机字长 按字编址,按字节编址与按字长编址区别及原理图解分析
  14. 开学送给她的礼物(Python实现)
  15. Paste for Mac(剪切板历史管理工具)
  16. 微信朋友圈为什么不能发gif图?
  17. 高通新款高端芯片抢闸发布,小米将首发,趁机从华为手里抢夺市场
  18. (C++)1~10000质数表
  19. 国产银河麒麟系统源码安装Openvas
  20. 手柄xinput模式_玩家新宠,谷粒金刚PRO游戏手柄不全面体验

热门文章

  1. fast无线网卡linux驱动,fast无线网卡驱动,详细教您fast无线网卡驱动
  2. 1392:繁忙的都市(city)
  3. 木兰在线英语词典 -- 溯源拆分记单词
  4. 2021 年高校毕业生就业调查报告发布,本科毕业月平均起薪 5825 元?
  5. 边缘计算:一文理解云边端协同架构中的高性能云计算、边缘计算、云边协同
  6. 大小端高位低位字节的理解
  7. 微信公众号配置token
  8. va_start函数的使用
  9. BT下载不死!Magnet(磁力链接)开创网络BT2.0时代!!
  10. silk 编解码器下载