ssm整合redis和mysql_Redis整合SSM

整合SSM+Redis

主要的整合主要是在业务层进行实现代码的配置文件的整合要注意1.存在缓存中的key的命名名称使用 “:” 进行分割在图形页面的显示上会以树状的形式进行展现

2.设置在进行缓存的时候查询的步骤

3.关于Redis的代码要放在try块内保证就算Redis代码出现异常也要让数据返回给调用者

4.Spring读取配置文件使用*号代替,在一个标签内写入多个也行,不要出现多个加载的属性文件的标签这样会出现找不到属性的异常出现属性注入失败,或者使用@ProperSource注解进行文件的读取和注入1.value:属性文件的路径

2.ignoreResourceNotFound:表示是否忽略文件找不到

5.进行缓存的时候要选好key存储

@Service

@PropertySource(value = "classpath:redis.properties" ,ignoreResourceNotFound = true)

public class UserServiceImpl implements UserService {

@Autowired

private UsersMapper userMapper;

@Autowired

private RedisDao redisDao;

@Value("${REDIS_USERS_PRIX}")

private String REDIS_USERS_PRIX;

整合目录:pom文件需要的坐标

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.sxt

16-parent

0.0.1-SNAPSHOT

com.sxt

17-redis-ssm

0.0.1-SNAPSHOT

war

junit

junit

test

org.slf4j

slf4j-log4j12

test

org.springframework

spring-context

org.springframework

spring-core

org.springframework

spring-beans

org.springframework

spring-web

org.springframework

spring-webmvc

org.springframework

spring-aop

org.springframework

spring-jdbc

org.springframework

spring-tx

org.springframework

spring-aspects

io.netty

netty-all

org.apache.curator

curator-recipes

org.apache.curator

curator-framework

org.mybatis

mybatis

org.mybatis

mybatis-spring

mysql

mysql-connector-java

com.alibaba

druid

javax.servlet

jstl

javax.servlet

javax.servlet-api

provided

javax.servlet

jsp-api

provided

redis.clients

jedis

com.fasterxml.jackson.core

jackson-databind

org.apache.tomcat.maven

tomcat7-maven-plugin

/

8080

实现缓存的业务代码

使用到的Jedis内的方法调用1.扩展还可以加入时效

/*** 查询缓存的方法* 1.为了保证方法能正常的执行,要将包含Redis操作的代码写在try块内* 保证在进行缓存操作就算出现异常也能继续方法的执行保证数据的返回*/

@Override

public Users findUserById(Integer id) {

try {

//1.首先查询缓存中是否包含数据String user = this.redisDao.get(this.REDIS_USERS_PRIX+":"+id);

if(user!=null&&user.length()>0) {

//2.如果缓存中有该数据则将数据返回给控制器return JsonUtils.jsonToPojo(user, Users.class);

}

} catch (Exception e) {

e.printStackTrace();

}

//如果缓存中没有数据在去数据库中查找数据,并且将查询到的数据放入缓存中以json的格式存在缓存中Users user = this.userMapper.findUserById(id);

try {

//3。将查询到的数据转换成json格式放入到缓存中this.redisDao.set(this.REDIS_USERS_PRIX+":"+id, JsonUtils.objectToJson(user));

} catch (Exception e) {

e.printStackTrace();

}

//4.返回Userreturn user;

}

通过图形化页面显示存入在缓存内的数据

Redis缓存和数据库数据同步的实现原理:原理简单,在进行修改数据的时候修改完毕后要将缓存内的数据删除掉,下次再查询的时候会在次走数据库查询,并将数据放入缓存区内

删除和修改同理,删除一条数据的时候,将缓存区内的数据也删除即可

public void updateUser(Users users) {

//修改数据库内的数据 this.userMapper.updateUser(users);

try{

//同步 redis this.jedisDao.del(this.REDIS_USERS_PRIFX+":"+users.getUserid());

}catch(Exception e){

e.printStackTrace();

}

}

你可能感兴趣的:(ssm整合redis和mysql_Redis整合SSM)