@Autowired private RedisTemplate<String, String> redisTemplate; public void saveData(String key, String value) { redisTemplate.opsForValue().set(key, value); } public String getData(String key) { return redisTemplate.opsForValue().get(key); } @Autowired private RedisTemplate<String, Object> redisTemplate; public void saveHashData(String key, String hashKey, Object value) { redisTemplate.opsForHash().put(key, hashKey, value); } public Object getHashData(String key, String hashKey) { return redisTemplate.opsForHash().get(key, hashKey); } @Component public class RedisMessageListener { @Autowired private RedisTemplate<String, String> redisTemplate; @EventListener public void handleMessage(Message message) { System.out.println("Received message: " + message.getBody()); } public void publishMessage(String channel, String message) { redisTemplate.convertAndSend(channel, message); } } <bean id="redisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="localhost" /> <property name="port" value="6379" /> </bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate"> <property name="connectionFactory" ref="redisConnectionFactory" /> </bean>