centos7环境下搭建redis及springboot连接集成
1.官方下载安装文件redis-4.0.2版本、解压、编译(gcc、tcl),make test 没问题则编译成功
2.切换到redis目录,执行src/redis-server redis.conf &
redis.conf内容 注意2点 a)注释bind 127.0.0.1 b)关闭保护模式,允许其他IP远程连接
3.执行 src/redis-cli -h 192.168.xx.xx -p 6379
如果set key value成功,则说明可以远程连接了(特别注意,所在服务器的防火墙是否关闭)。
4本地推荐redis可视化工具:redis desktop manager
5.springboot连接集成操作
@Configuration @EnableCaching public class RedisConfig extends CachingConfigurerSupport { @Bean public KeyGenerator keyGenerator() { return new KeyGenerator() { @Override public Object generate(Object target, Method method, Object... params) { StringBuilder sb = new StringBuilder(); sb.append(target.getClass().getName()); sb.append(method.getName()); for (Object obj : params) { sb.append(obj.toString()); } return sb.toString(); } }; } @SuppressWarnings("rawtypes") @Bean public CacheManager cacheManager(RedisTemplate redisTemplate) { RedisCacheManager rcm = new RedisCacheManager(redisTemplate); return rcm; } public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory redisConnectionFactory) { StringRedisTemplate template = new StringRedisTemplate(redisConnectionFactory); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); template.setValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; } }
属性文件配置
#redis配置 # Redis数据库索引(默认为0) spring.redis.database=0 # Redis服务器地址 spring.redis.host=192.168.198.xxx # Redis服务器连接端口 spring.redis.port=6379 # Redis服务器连接密码(默认为空) spring.redis.password= # 连接池最大连接数(使用负值表示没有限制) spring.redis.pool.max-active=8 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.pool.max-wait=-1 # 连接池中的最大空闲连接 spring.redis.pool.max-idle=8 # 连接池中的最小空闲连接 spring.redis.pool.min-idle=0 # 连接超时时间(毫秒) spring.redis.timeout=0
测试类
@RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = DemoDruidTestApplication.class) @WebAppConfiguration public class TestRedis { @Autowired private StringRedisTemplate stringRedisTemplate; @Autowired private RedisTemplate redisTemplate; @Test public void test(){ stringRedisTemplate.opsForValue().set("test1","111"); Assert.assertEquals("111",stringRedisTemplate.opsForValue().get("test1")); } }