SpringBoot整合Redis
依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
配置文件
#使用springboot,未指定应用使用的端口号时,web应用默认为8080 #server.port=8080
spring.redis.host=192.168.1.9 spring.redis.port=6379 #redis默认有16个数据库,指定要使用的数据库,0-15,第一个是0 spring.redis.database=0 #连接到redis服务器的超时时间,ms spring.redis.timeout=3000
#默认8。jedis连接池中最多可以有max-active个连接。-1表示不限制 spring.redis.jedis.pool.max-active=200 #默认8 spring.redis.jedis.pool.max-idle=100 #默认0 spring.redis.jedis.pool.min-idle=50 #如果jedis连接池暂时没有闲置连接可用,可以等待多长时间获取连接,ms。-1表示一直等待 spring.redis.jedis.pool.max-wait=1000
#如果使用的是redis集群,将上面的host、port注释掉,配置redis集群各节点的信息。需要redis所在机器的防火墙开放对应端口。 #spring.redis.cluster.nodes=192.168.1.9:6381,192.168.1.9:6382,192.168.1.9:6383,192.168.1.9:6384,192.168.1.9:6385,192.168.1.9:6386
Redis工具类
直接使用提供的类、方法操作Redis有点麻烦,一句代码要写很长,往往要自己封装一下
@Component public class RedisUtil { @Autowired private static StringRedisTemplate redisTemplate; // 官方不推荐在成员变量上用@Autowired,如果换为@Resource启动项目时会报错 // 如果要用@Resource,要写成下面这样 // @Resource // private RedisTemplate<String,String> redisTemplate; public static void set(String key,String value){ redisTemplate.opsForValue().set(key,value); System.out.println("ok"); } public static String get(String key){ return redisTemplate.opsForValue().get(key); } public static void hset(String key,String field,Object value){ redisTemplate.opsForHash().put(key,field,value); } public static Object hget(String key,String field){ return redisTemplate.opsForHash().get(key,field); } //...... }
要用时直接调用即可