redis基础
本文最后更新于292 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

redis是基于内存的key-values数据库

  • 基于内存存储,读写性能高
  • 适合存储热点数据(热点商品、资讯、新闻)
  • 企业应用广泛

官网:https://redis.io

中文网:https://www.redis.net.cn/

常用数据类型

alue有5种常用的数据类型:

  • 字符串(string):普通字符串,Redis中最简单的数据类型
  • 哈希(hash):也叫散列,类似于Java中的HashMap结构
  • 列表(list):按照插入顺序排序,可以有重复元素,类似于Java中的LinkedList
  • 集合(set):无序集合,没有重复元素,类似于Java中的HashSet
  • 有序集合(sorted set / zset):集合中每个元素关联一个分数(score),根据分数升序排序,没有重复元素

操作命令

字符串操作命令

SET key value 设置指定key的值

GET key 获取指定key的值

SETEX key seconds value 设置指定key的值,并将 key 的过期时间设为 seconds 秒(ps:验证码)

SETNX key value 只有在 key 不存在时设置 key 的值

哈希操作命令

HSET key field value 将哈希表 key 中的字段 field 的值设为 value

HGET key field 获取存储在哈希表中指定字段的值

HDEL key field 删除存储在哈希表中的指定字段

HKEYS key 获取哈希表中所有字段

HVALS key 获取哈希表中所有值

列表操作命令

LPUSH key value1 [value2] 将一个或多个值插入到列表头部(左边)

LRANGE key start stop 获取列表指定范围内的元素

RPOP key 移除并获取列表最后一个元素(右边)

LLEN key 获取列表长度

集合操作命令

SADD key member1 [member2] 向集合添加一个或多个成员

SMEMBERS key 返回集合中的所有成员

SCARD key 获取集合的成员数

SINTER key1 [key2] 返回给定所有集合的交集

SUNION key1 [key2] 返回所有给定集合的并集

SREM key member1 [member2] 删除集合中一个或多个成员

有序集合操作命令

ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员

ZRANGE key start stop [WITHSCORES] 通过索引区间返回有序集合中指定区间内的成员

ZINCRBY key increment member 有序集合中对指定成员的分数加上增量 increment

ZREM key member [member ...] 移除有序集合中的一个或多个成员

通用命令

KEYS pattern 查找所有符合给定模式( pattern)的 key

EXISTS key 检查给定 key 是否存在

TYPE key 返回 key 所储存的值的类型

DEL key 该命令用于在 key 存在是删除 key

Spring Data Redis使用方式

导入Spring Data Redis 的maven坐标配置Redis数据源编写配置类,创建RedisTemplate对象通过RedisTemplate对象操作Redis

@Configuration
@Slf4j
public class RedisConfiguration {

    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory
redisConnectionFactory){
        log.info("开始创建redis模板类...");
        RedisTemplate redisTemplate = new RedisTemplate();
        // 设置Key的序列化器,默认为JdkSerializationRedisSerializer
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        return redisTemplate;
    }

}

解释说明:

当前配置类不是必须的,因为 Spring Boot 框架会自动装配 RedisTemplate 对象,但是默认的key序列化器为JdkSerializationRedisSerializer,导致我们存到Redis中后的数据和原始数据有差别,故设置为StringRedisSerializer序列化器。

相关接口

RedisTemplate 针对大量api进行了归类封装,将同一数据类型的操作封装为对应的Operation接口,具体分类如下:

  • ValueOperations:string数据操作
  • SetOperations:set类型数据操作
  • ZSetOperations:zset类型数据操作
  • HashOperations:hash类型的数据操作
  • ListOperations:list类型的数据操作

如果觉得本文对您有所帮助,那这将是对我最大的鼓励,期待您留下您宝贵的评论。
暂无评论

发送评论 编辑评论


				
上一篇
下一篇