(16)spring boot中集成Redis实例

来源:互联网 发布:linux怎么修改文件权限 编辑:程序博客网 时间:2024/05/17 11:33

spring boot官网参考文档中说支持如下NoSql技术,并且提供了各种自动配置:

includingMongoDB,Neo4J,Elasticsearch,Solr,Redis,Gemfire,Cassandra,Couchbase andLDAP.

Spring Boot provides auto-configuration for Redis, MongoDB, Neo4j, Elasticsearch, SolrCassandra, Couchbase and LDAP;

spring boot官网文档中关于使用redis的只有一小段话,主要是告诉我们集成redis

需要引入哪些依赖,在代码中怎么用的简单说明。

***依赖包

在pom.xml中加入如下配置,不需要指定版本号,spring boot的parent会自动选择匹配版本:

<!-- Redis依赖 --><dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-data-redis</artifactId></dependency>

application.properties中关于redis配置:

# redisspring.redis.host=192.168.106.128spring.redis.port=6379spring.redis.password=testredis.no_op=no

***简单使用实例

spring boot中使用redis可以注入RedisConnectionFactoryStringRedisTemplateRedisTemplate

这三个实例来操作缓存。这里主要讲注入RedisTemplate实例的简单例子。

1. 关于redis使用hash 类型的简单hset方法工具类HashRedisUtil.java,内容如下:

package com.lanhuigu.util;import java.nio.charset.Charset;import org.springframework.dao.DataAccessException;import org.springframework.data.redis.connection.RedisConnection;import org.springframework.data.redis.core.RedisCallback;import org.springframework.data.redis.core.RedisTemplate;public class HashRedisUtil {private static final Charset utf8 = Charset.forName("utf8");/** *  * @param redis RedisTemplate模板 * @param hkey  Hash表名 * @param key   Hash表中的key,也就是Hash表的字段属性 * @param value Hash表中字段属性对应的值 * @return */public static boolean hset(RedisTemplate<String, String> redis, final String hkey, final String key, final String value) {return redis.execute(new RedisCallback<Boolean>() {@Overridepublic Boolean doInRedis(RedisConnection connection) throws DataAccessException {boolean b = connection.hSet(hkey.getBytes(utf8), key.getBytes(utf8), value.getBytes(utf8));return b;}});}}

2. 注入RedisTemplate实例,操作redis缓存

package com.lanhuigu.hello;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.bind.annotation.RestController;import com.lanhuigu.util.HashRedisUtil;/** * @RestController这个注解等价于spring mvc用法中的@Controller+@ResponseBody  */@RestController@RequestMapping(value="hello")public class HelloController {@AutowiredRedisTemplate<String, String> redis;@RequestMapping(value="sayHello")@ResponseBodyprivate String sayHello() {boolean bTest = HashRedisUtil.hset(redis, "user", "name", "testRedisHsetMethod");System.out.println("RedisTestResult:" + bTest);return "hello world!";}}
***检验是否hset成功

连接到redis客户端,通过hgetall查看键值和属性值,

或者在HashRedisUtil中在增加一个hget的方法,

结果如下:


通过Redis命令窗口,看到通过程序操作的缓存set成功。

总结:

关于RedisTemplate中有很多方法,方法的含义与Redis命令的含义一样,

毕竟是通过程序操作Redis缓存达到直接使用Redis命令操作缓存的效果。

RedisConnectionFactory用于获取Redis连接实例。

StringRedisTemplate主要用于操作Redis的String类型。


原创粉丝点击