redisTemplate的实操演练
Posted 纷飞落叶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redisTemplate的实操演练相关的知识,希望对你有一定的参考价值。
前言
昨天大概简单地了解一下redis的数据结构以及事件驱动模型,然后碰到了跳表这种数据结构,于是又对跳表数组和链表这三种数据结构进行了一番比对。但是实际工作中,我们并不会接触这些过于底层地数据结构,我们只需要用好大佬给我们写好的操作redis的工具包就行了。平时我听说过两种使用java操作redis的工具包,一个是那个什么jedis,另一个就是spring框架集成的RedisTemplate。
由于我深受spring框架毒害,所以直接二话不说选择了spring框架自带的redisTemplate。一开始操作的时候,碰到了一个很恶心的问题。就是那一堆键值序列化器。如下直接拿起来redisTemplate就用:
你会发现,虽然你把值存进去了,但是在redisDeskTop里面却找不到你刚才存得键值对。但是实际上键值对是存在的。
如果你换一种方式注入redisTemplate,标记该template是操作String类型的键值对的,如下:
那么你就可以看到客户端管理工具里有这个键值对:
这里面主要涉及到序列化和反序列化的问题。第一种,第二种注入方式,默认使用的序列化器分别如下:
我们先记住是因为序列化与反序列化的原因导致了这种情况的发生。不过接下来我们先不对这一点进行深究。我们直接进入今天的主题,如何使用redisTemplate对常见的String,list以及hash等数据结构进行一些常见的操作。
练手项目
https://github.com/liantengda/myRedis.git
简单示例
此处我来引用几个我写好的简单示例。所有对redis的操作全部封装在RedisUtil类中。
1String数据结构,根据key找到value
测试结果如下:
2String数据结构,存储一个字符串
测试结果如下:
3String数据结构,在有值的地方根据偏移量进行覆写
一开始的值如下所示:
然后我们从第二个喵开始覆写,偏移量为3,我们把第二个喵覆盖了。如下:
接下来这个比较有意思,按道理,UTF-8编码的字符占用三个字节,如果我们添加的偏移量offset不是3的倍数,那么覆写出来的值,大概率会有乱码。测试结果如下:
4List数据结构,从左侧向list中插入一组值
测试结果如下:
5List数据结构,从右侧弹出一个元素,弹出后不复存在
测试结果如下:
再次查询该key值对应的list,结果如下:
6Hash数据结构,向某个hash中批量添加键值对
测试结果如下:
7Hash数据结构,从某个hash中查找指定数量的键值
本次测试主要是为了测试下,hash中的遍历功能。needCount即为我们需要的数量,也为遍历次数。测试结果如下:
小结
以上只是例举了几个简单的测试,实际上目前一共有三十多个接口对应三十多种功能。以后还会继续增加,360度无死角练习。让你的redis用起来像风一样。
十年河东十年河西,切莫放年华虚度
一脚门里一脚门外,可晓得脚步留神
以上是关于redisTemplate的实操演练的主要内容,如果未能解决你的问题,请参考以下文章