SSM整合Redis并解决所遇到的问题

xiaoxiao2022-06-11  31

SSM整合Redis

1.先搭建SSM框架

2.在pom.xml中引入redis依赖

<!--引入redis依赖--> <dependency>          <groupId>redis.clients</groupId>          <artifactId>jedis</artifactId>          <version>2.9.0</version> </dependency>

 3.在spring的配置文件中配置redis

<!--配置redis-->     <bean id="jedisPool" class="redis.clients.jedis.JedisPool">         <constructor-arg name="host" value="${redis.host}"></constructor-arg>         <constructor-arg name="port" value="${redis.port}"></constructor-arg>     </bean>

4.创建redis缓存处理类RedisCache

package com.liuYongQi.SSM.redis; import org.springframework.stereotype.Service; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import javax.annotation.Resource; /**  * @ClassName: RedisCache  * @Description: TODO redis缓存处理类  * @Author: Administrator  * @CreateDate: 2018/10/20 22:54  * @UpdateUser: Administrator  * @UpdateDate: 2018/10/20 22:54  * @UpdateRemark: 修改内容  * @Version: 1.0  */ @Service("redisCache") public class RedisCache {     @Resource     private JedisPool jedisPool;     /**      * @Author Administrator      * @Description //TODO 对redis数据库进行添加数据      * @Date 22:58 2018/10/20      * @Param [key, value]      * @return void      * @exception      */     public void setDataToRedis(String key,String value){         System.out.println("数据添加到Redis中");         System.out.println("key:"+key);         Jedis jedis = jedisPool.getResource();         jedis.set(key,value);     }     /**      * @Author Administrator      * @Description //TODO 对redis数据库的数据进行查询      * @Date 23:00 2018/10/20      * @Param [key]      * @return java.lang.String      * @exception      */     public String getDataFromRedis(String key){         System.out.println("对redis数据库的数据进行查询");         System.out.println("key:"+key);         Jedis jedis = jedisPool.getResource();         return jedis.get(key);     } }

5.创建Contoller类

package com.liuYongQi.SSM.controller; import com.alibaba.fastjson.JSON; import com.liuYongQi.SSM.pojo.Users; import com.liuYongQi.SSM.redis.RedisCache; import com.liuYongQi.SSM.service.UsersService; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.annotation.Resource; import java.util.List; import java.util.Map; /**  * @ClassName: UsersController  * @Description: TODO 用户处理类  * @Author: Administrator  * @CreateDate: 2018/10/19 23:17  * @UpdateUser: Administrator  * @UpdateDate: 2018/10/19 23:17  * @UpdateRemark: 修改内容  * @Version: 1.0  */ @Controller public class UsersController {     private static Logger logger= LogManager.getLogger(UsersController.class);     @Resource     private UsersService usersService;     @Resource     private RedisCache redisCache;         /**      * @Author Administrator      * @Description //TODO redis缓存      * @Date 20:29 2018/10/23      * @Param [map]      * @return java.lang.String      * @exception      */     @RequestMapping("/getAllUsers")     public String getAllUsers(Map map){         List<Users> usersList=null;         //先从redis中获取         String key="com.liuYongQi.SSM.dao.UsersDao.selectAllUsers";         String data = redisCache.getDataFromRedis(key);         if(data==null){             //没有就查询数据库             usersList= usersService.selectAllUsers();             //先把集合对象转换成json             String string = JSON.toJSONString(usersList);             //把查询的结果放入到redis中             redisCache.setDataToRedis(key,string);         }else{             //将data转换成对象集合             usersList=JSON.parseArray(data,Users.class);         }         map.put("usersList",usersList);         return "success";     }     }

6.创建jsp 

<%-- Created by IntelliJ IDEA. User: Administrator Date: 2018/10/19 Time: 23:16 To change this template use File | Settings | File Templates. --%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <a href="/getAllUsers.do">测试redis</a> </body> </html>

 7.测试

 

 

8.问题若出现

解决方法: 在redis客户端输入:config set protected-mode "no"或者关闭防火墙 如果你出现了redispool连接池的错误,那可能是你6379的端口没放开, firewall-cmd --zone=public --add-port=6379/tcp –permanent 这样就成功的将8081端口加入了public区域中,permanent参数表示永久生效,即重启也不会失效,最后不要忘记更新防火墙规则: firewall-cmd –reload

OK,下面看一下public区域下所有已打开的端口,命令如下:

firewall-cmd --zone=public --list-ports

开端口的地址:https://blog.csdn.net/wlwlwlwl015/article/details/51210347

今天的测试就到这里了,谢谢大家的支持!

如果大家想浏览我的下一篇文章,请留言

版权声明:此文章属于原创,不准随意转载:https://blog.csdn.net/LYQ2332826438

 

转载请注明原文地址: https://www.6miu.com/read-4931515.html

最新回复(0)