redis
学习redis过程中遇到的问题
redis缓存和MySQL中数据不一致问题
redis缓存点击量,每隔一段时间把点击量写到MySQL中去
博客详情读取redis缓存中的内容。但是在此过程中,修改了MySQL中的内容
阅读量较大的情况下,一次次请求缓存中的内容,导致缓存一直存在,没有删除。每次读取的是缓存内容,而不是数据库内容。但是在此时数据库中的内容又被修改。此时要如何保证数据一致。(一修改就马上更新缓存)
如何判断redis是否已经连接
在开启redis数据库的情况下,进行缓存读取和存储。但是关闭redis服务器后,运行会报错。(已经解决,try catch就可以判断)
MySQL连表查询
集合
在项目启动时就加入缓存权限关系
加一个类
package com.xiaokong.usercenter.common;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Component;
import com.xiaokong.usercenter.platform.domain.PlatformRoleRightRelation;
import com.xiaokong.usercenter.platform.service.RoleRightService;
@Component
public class ApplicationStartup implements ApplicationListener<ApplicationReadyEvent> {
/**
* This event is executed as late as conceivably possible to indicate that the
* application is ready to service requests.
*/
@Autowired
RedisTemplate<String, String> redisTemplate;
@Autowired
private RoleRightService roleRightService;
@Override
public void onApplicationEvent(final ApplicationReadyEvent event) {
//your code
ValueOperations<String, String> operations = redisTemplate.opsForValue();
List<PlatformRoleRightRelation> list = roleRightService.roleRightRelationsList();
for (PlatformRoleRightRelation relation : list) {
int roleId = relation.getRoleId();
int rightId = relation.getRightId();
String key = "user_center" + "-" + roleId + "-" + rightId;
System.out.println(key);
operations.set(key, "true");
}
return;
}
}
Comments
Leave a comment