在springboot项目中,集成各种框架变得非常容易。下面简单介绍一下如何在springboot项目中集成单机模式redis。集群模式也差不多,这里就不过多介绍了。

  • 首先你得安装redis服务,无论在linux还是windows系统上。如果没有安装,请自行百度或使用其他科学网站帮助。随后需要在项目的配置文件中配置redis相关参数以及设置jedis连接池的参数。可参考下图配置方式:

  • 由于本人使用了maven方式来构建项目,所以需要在项目的pom文件中加入redis相关依赖。

  • 之后就需要实现redis配置文件类。配置文件的jedis连接池配置就不列出来了,反正就是根本properties文件来一步一步设置,连接工厂也是跟连接池有关。这里重点介绍一下redisTemplate的实现,以及与redis操作工具类的配合使用。可以根据下图来进行个性化设置:

  • 实现配置文件后,就可以在redis工具类RedisUtil中使用redisTemplate了。如下图所示:

  • 这里redisTemplate实例化是在redis配置类中实现的。直接将RedisUtil通过注解方式直接注入到spring容器中去,在此过程中使用工具类的setRedisTemplate方法实例化RedisTemplate。这样就能直接通过@AutoWired注解去装配Bean了。

  • 在RedisUtil工具类中,我们通过redisTemplate去操作数据结构。无论是一般数据(String),还是Map数据结构,还是List数据结构,都有相应的操作方法。如下图:

  • 工具类完成后,在相应的服务层使用这个工具类来操作redis的数据结构实现相应业务。

以上就是一个redis操作类在speingboot项目中的简单实现。除了数据结构的操作,我们还能使用redis的特性来实现一些业务场景特定的功能。例如使用increment方法实现点赞功能;利用redis单线程特性生成唯一主键;将redis与Lua脚本相结合,实现redis分散式锁,当然这需要考虑到业务时间与过期时间的关系问题。

除此之外,在使用redis过程中应该需要考虑到雪崩、穿透和击穿等问题,这也是在面试过程中经常问到的问题。希望对你有所帮助。


Redis 数据结构简介Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字元串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。

下面来对这5种数据结构类型作简单的介绍:

结构类型 结构存储的值 结构的读写能力String 可以是字元串、整数或者浮点数 对整个字元串或者字元串的其中一部分执行操作;对象和浮点数执行自增(increment)或者自减(decrement)List 一个链表,链表上的每个节点都包含了一个字元串 从链表的两端推入或者弹出元素;根据偏移量对链表进行修剪(trim);读取单个或者多个元素;根据值来查找或者移除元素Set 包含字元串的无序收集器(unorderedcollection),并且被包含的每个字元串都是独一无二的、各不相同 添加、获取、移除单个元素;检查一个元素是否存在于某个集合中;计算交集、并集、差集;从集合里卖弄随机获取元素Hash 包含键值对的无序散列表 添加、获取、移除单个键值对;获取所有键值对Zset 字元串成员(member)与浮点数分值(score)之间的有序映射,元素的排列顺序由分值的大小决定 添加、获取、删除单个元素;根据分值范围(range)或者成员来获取元素Redis 5种数据结构的概念大致介绍到这边,下面将结合Spring封装的RedisTemplate来对这5种数据结构的运用进行演示

RedisTemplate介绍spring 封装了 RedisTemplate 对象来进行对redis的各种操作,它支持所有的 redis 原生的 api。

RedisTemplate在spring代码中的结构如下:

org.springframework.data.redis.coreClass RedisTemplate<K,V>java.lang.Objectorg.springframework.data.redis.core.RedisAccessororg.springframework.data.redis.core.RedisTemplate<K,V>Type Parameters:K

the Redis key type against which the template works (usually a String)模板中的Redis!


推荐阅读:
相关文章