1.安装redis环节我这边忽略了。。。
2.关闭redis所在服务器防火墙
3.修改redis.conf配置文件
注:这一步如不改 直接在redis命令执行没问题,但spring-boot 架构项目 或 jedis api 都有问题
3.1 注释掉绑定地址
# bind 127.0.0.1
3.2修改守护进程为no
127.0.0.1:6379> config set daemonize "no"
3.3 修改保护模式为no
127.0.0.1:6379> config set protected-mode "no"
3.4 设置身份密码验证
找到# requirepass 将前面的#去掉 (后面的是密码 可以修改密码)
3.5 启动reids服务器
$ cd /opt/redis
$ src/redis-cli /opt/redis-cli/redis.conf
4.maven jar包依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>
5. application.properties添加链接配置
spring.redis.host=192.168.xxx.xxx
spring.redis.port=6379
spring.redis.password=ray.liusl
#最大分配的对象数
spring.redis.Pool.maxIdle=10
spring.redis.Pool.maxActive=10
6.RedisCacheConfig redis缓存配置类
@Configuration
@EnableCaching //启用缓存
public class RedisCacheConfig extends CachingConfigurerSupport {
/**
* @description cacheManager:缓存管理器 <br>
*
* @author ray.liusl<br>
* date: 2017年6月19日 上午9:59:33 <br>
* @since JDK 1.8
* @param redisTemplate 缓存模版
* @return 缓存管理对象
*/
@Bean
public CacheManager cacheManager(RedisTemplate<?, ?> redisTemplate) {
CacheManager cacheManager = new RedisCacheManager(redisTemplate);
return cacheManager;
}
/**
* @description redisTemplate:redis模版操作 <br>
*
* @author ray.liusl<br>
* date: 2017年6月19日 上午10:00:33 <br>
* @since JDK 1.8
* @param factory 连接工厂
* @return RedisTemplate<String, String> redis模版对象
*/
@Bean
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();
redisTemplate.setConnectionFactory(factory);
RedisSerializer<String> redisSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(redisSerializer);
redisTemplate.setHashKeySerializer(redisSerializer);
return redisTemplate;
}
7. Service层
@Service
public class SampleRedisServiceImpl implements SampleRedisService {
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Autowired
private UserDao userDao;// 系统用户dao
@Override
public Object getStringCache(String key) {
ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
// valueOperations.set(key, "random1=" + Math.random());
return valueOperations.get(key);
}
//下面User 为实体类 请自行创建下 省略
@Cacheable(key = "#userId", value = "user")
@Override
public User findByUserCode(String userId) {
return userDao.findById(userId);
}
8.Controller层代码
@Controller
@RequestMapping("/redis")
public class SampleRedisController {
@Autowired
SampleRedisService sampleRedisService;
@RequestMapping("/getStringCache")
public void getStringCache(String id) {
User user = sampleRedisService.findById(code);// 从数据库查
user = (User) sampleRedisService.getStringCache(id); //从缓存取
System.out.println(user.getName());
}
9.运行结果及redis服务器存储数据情况
2017-06-19 13:50:57.299
admin
10.redis其他数据结构大家下面自行再研究研究 这边就开个头。。。