1、自定义RedisTemplate配置,可直接使用。
package com
.wj
.config
;
import com
.fasterxml
.jackson
.annotation
.JsonAutoDetect
;
import com
.fasterxml
.jackson
.annotation
.PropertyAccessor
;
import com
.fasterxml
.jackson
.databind
.ObjectMapper
;
import org
.springframework
.context
.annotation
.Bean
;
import org
.springframework
.context
.annotation
.Configuration
;
import org
.springframework
.data
.redis
.connection
.RedisConnectionFactory
;
import org
.springframework
.data
.redis
.core
.RedisTemplate
;
import org
.springframework
.data
.redis
.serializer
.Jackson2JsonRedisSerializer
;
import org
.springframework
.data
.redis
.serializer
.StringRedisSerializer
;
import java
.net
.UnknownHostException
;
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate
<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory
)
throws UnknownHostException
{
RedisTemplate
<String, Object> template
= new RedisTemplate<>();
template
.setConnectionFactory(redisConnectionFactory
);
Jackson2JsonRedisSerializer
<Object> objectJackson2JsonRedisSerializer
= new Jackson2JsonRedisSerializer<Object>(Object
.class);
ObjectMapper objectMapper
= new ObjectMapper();
objectMapper
.setVisibility(PropertyAccessor
.ALL
, JsonAutoDetect
.Visibility
.ANY
);
objectMapper
.enableDefaultTyping(ObjectMapper
.DefaultTyping
.NON_FINAL
);
objectJackson2JsonRedisSerializer
.setObjectMapper(objectMapper
);
StringRedisSerializer stringRedisSerializer
= new StringRedisSerializer();
template
.setKeySerializer(stringRedisSerializer
);
template
.setHashKeySerializer(stringRedisSerializer
);
template
.setValueSerializer(objectJackson2JsonRedisSerializer
);
template
.setHashValueSerializer(objectJackson2JsonRedisSerializer
);
template
.afterPropertiesSet();
return template
;
}
}
2、Redis的发布订阅
订阅命令: 订阅端:
127.0.0.1:6379
> SUBSCRIBE wj
==》订阅频道
Reading messages
...
(press Ctrl-C to quit
)
1
) "subscribe"
2
) "wj"
3
) (integer
) 1
====接收推送信息
1
) "message"
2
) "wj"
3
) "hello"
1
) "message"
2
) "wj"
3
) "nice"
发布端:
127.0.0.1:6379
> PUBLISH wj hello
(integer
) 1
127.0.0.1:6379
> PUBLISH wj
nice
(integer
) 1
127.0.0.1:6379
>