目录
一、Redis常用的5种数据类型
1、字符串
2、哈希,适合存储对象
3、list列表
按照插入顺序排序,可以有重复元素
4、集合set无需集合,没有重复元素
5、有序集合,没有重复元素
每个元素具有分值,但依然会被覆盖
字符串String操作命令
set key value 设置指定的key值
get key 获取指定key的值
setex key seconds value 设置过期时间
setnx key value 只有在key不存在时设置key的值
哈希Hash操作命令
HSET key field value
HGET key field
HDEL key field
HKEYS key
HVALS key
HGETALL key
列表list操作命令
LPUSH key value 将一个或多个值插入到列表头部
LRANGE key start stop start-stop的元素
RPOP key 获取并移除最后一个元素
LINE key 长度
BRPOP key timeout 移除并获取最后一个元素 ,设置时间,没有元素会阻塞,知道超时或者发现元素
集合set操作命令
SADD key member 向集合添加一个或多个成员
SMEMBERS key 返回集合中的所有成员
SCARD key 获取集合的成员数
SINTER key 返回交集
SUNION key 并集
SDIFF key 返回差集
SREM key member 移除一个或多成员
有序集合sorted set 操作命令
ZADD key score member 添加,带分数,从小到大排名
ZRANGE key start stop [withscores] 展示
ZINCRBY key increment member 增加分数值
ZREM key member 移除
通用命令
KETS pattern 查找所有符合pattern的模式
EXISTS key 检查给定key是否存在
TYPE key 返回给定key所存储的类型
TTL key 返回剩余时间
DEL key 删除
二、使用
导入maven坐标
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
配置文件
data: redis: host: port: 6379 # 一共默认有16个库 database: 0 password: cache: redis: # 设置缓存数据的过期时间,以秒为单位 time-to-live: 1800000
配置类
主要解决序列化问题 (spring容器中已经有RedisTemplate)
@Configuration public class RedisConfig extends CachingConfigurerSupport { @Bean public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory){ RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>(); //默认的Key序列化器为:JdkSerializationRedisSerializer,解决乱码问题 redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setConnectionFactory(connectionFactory); return redisTemplate; } }
三、Spring Cache
基于注解的缓存功能,底层可以切换不同的cache。
CacheManager是Spring 提供的各种缓存技术抽象接口
常用注解
@EnableCaching 开启缓存注解功能
@Cacheable 如果有数据,直接返回;没有数据,执行方法并将返回值放入缓存中
@CachePut 将方法的返回值放入缓存中
@CacheEvict 将一条或多条数据从缓存中删除
如何使用缓存技术
导入相关的依赖包,例如redis,在启动类上使用开启注解。
使用redis缓存技术
若有条件处理,以返回值为条件,使用unless
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency>
配置application.yml
cache: redis: # 设置缓存数据的过期时间,以秒为单位,不设置,默认永久 time-to-live: 1800000