在Java中操作Redis
-
使用Jedis操作Redis
-
导入依赖
-
获取连接
Jedis jedis = new Jedis("localhost", 6379);
-
执行具体操作
-
关闭连接
-
-
Spring Data Redis
-
导入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>${spring-boot.version}</version> </dependency>
-
Spring Data Redis中提供了一个高度封装的类:RedisTemplate,针对jedis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口,具体分类如下:
- ValueOperations:简单K-V操作
- SetOperations:set类型数据操作
- ZSetOperations:Zset类型数据操作
- HashOperations:针对map类型的数据操作
- ListOperations:针对list类型的数据操作
-
配置yaml文件
spring: redis: host: localhost port: 6379 #password 123456 database: 0 # 默认在0号数据库 jedis: #Redis 连接池配置 pool: max-active: 8 #最大连接数 max-wait: 1ms #连接池最大阻塞等待时间 max-idle: 4 #连接池中最大空闲等待连接 min-idle: 0 #连接池中最小空闲等待连接
-
配置配置类RedisConfig
@Configuration public class RedisConfig { @Bean public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>(); // 默认key的序列化器为:JdkSerializationRedisSerializer redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setConnectionFactory(connectionFactory); return redisTemplate; } }
-
通过RedisTemplate获取相应类型进行操作
类型 获取 常用方法 ValueOperations redisTemplate.opsForValue() set、get、setIfAbsent SetOperations redisTemplate.opsForSet() add、members、remove ZSetOperations redisTemplate.opsForZSet() add、range、incremenScore、remove HashOperations redisTemplate.opsForHash() put、get、keys、values ListOperations redisTemplate.opsForList() leftPush、leftPushAll、range、size、rightPop 通用命令 : keys、hasKey、delete、type
-