1、boot提供了两类模板使用:RedisTemplate StringRedisTemplate。多用后面哪个,两个模板并不通用,序列化不同,RedisTemplate的序列化配置,非常烦人。

2、网上提供了非常多的工具类,主要就是在dao层简化操作。但是!不要去用!几乎都没有用范式,老老实实

stringRedisTemplate.opsForList().{{do you want}}。看手册比较快,竟然浪费了我几个小时取研究怎么写范式,最后直接崩溃。


3、redis的键值非常强大,速度等等也非常快,并且可以简化掉非常复杂的数据库设计,例如关注,点赞,好友列表,群组关系,用键值关系,一步到位。但是键值的关系,就需要灵活化数组的应用。如果想实现嵌套json,就需要LIST套MAP等等了。例如

userlist[
friendname:
image:
session:
data:[
        xxx:
        yyy:]
]
关系应该是list<userlist,map>
map<String,map>
map.put(friendname,V)
...
map.put<data,List<map>>
....

此类关系,一层一层组叠加起来。这个逻辑应该还蛮好理解的,例子随手写的思路是这样,如果 要实现,需要自己尝试修改。

4、做缓存,做读写分离;定时SYNC会好一些,但是不符合大部分互联网应用场景,所以在实时同步的时候,需要知道,REDIS增删该查,有天然劣势:无法简单定位。总结下来:sortset类型比较适合分页跟查数据;list类型只能踢出以及操作两端数据,其中的range可以做分页很方便,但是系统消耗会多一些;string就是string,session一类的stable data可以放进去;其他的没咋用过,但是hush很强大,要多理解。

做缓存读出来的数据基本都是list类型,在放入redis最方便的操作就是直接tojson,直接把数据作为json数据放入redis,取出后会以list<string>类型出现,这个时候for循环,单独把每一条数据toString,放入你的List<entity>中再一次性回传,前端会省非常多事。

还有分布式中数据强一致,时效,数据校验,手工计算分布式负载等,以后写吧。redis做分布式服务器压力记载,做动态权值,给服务器分配访问资源,这个很酷。榨干每一台服务器的资源,需要配合strom一起使用。以后有时间再写好了