spring boot redis中初学遇到的坑

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一起使用。以后有时间再写好了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值