Redis学习课程计划
本系列文章是根据黑马程序员视频的学习笔记进行学习
数据类型介绍
业务数据的特殊性
最初定位是缓存来使用。
1、原始业务功能设计(秒杀方面、618、双11、12306等高数据并发)
2、运营平台监控到的突发高频访问数据
意思就是说最开始并不知道新闻是热点,一开始关注不到,但是可以监控到高频词了,所以可以加入到Redis中了。
3、高频、复杂的统计数据
比如说直播的在线人数、偶像团的投票刷票等等(实时刷新、快速响应)
附加功能
1、系统功能优化或者升级
比如说单服务群升级集群、session管理、token管理等。
数据类型(5种常用的)
右边是可以对应成java中的数据类型。
Redis存储数据格式
本身是一个Map,所有的数据都是采用的key:value的形式存储。
左边是string,右边才是数据类型。左边永远是string,没有什么操作的。
String类型简介
string的基本操作
返回的 1和0 要分清楚!一个是成功 一个是失败。
一次设置多个、一次取多个
m的意思是multi…的一个单词,意思是多的意思。
原本的age是200,追加了之后变成了200300,所以是返回的6。如果不存在那么就直接新建了。
单数据操作与多数据操作的选择困惑
一次是set,一次是mset。需要复原这个操作的实现过程有什么区别。
set指令发送过去要消耗时间,redis执行要时间,返回result也要时间。
所以需要均衡发送时长、执行时长之间的关系。
一次发1亿条,那就需要切成100万条,发100次,就是需要理清楚对应的需要关系。
如果只需要发2个,那么肯定没什么差距。
所以没有什么明确的指令说明有什么区别。
如果一次性发很多,一定要进行切割,不然就没意义了,容易卡死。
string类型数据的拓展操作
incr key 是增加一个 deor key 是减少一个单位
incrby key 10 增加10个单位 decrby key 10 减少是个单位
incrbyfloat key 1.5 是可以增加1.5个单位
incrby 和 decr 后面增加+ -符号 也可以做加减的操作的!
这个就是不是一个整数或者超出范围。
拓展操作:数据的时效性
设置数据具有指定的生命周期!
如果先设直setex进行秒数的设置,然后再进行一个set的普通设置,那么就会自动进行普通设置的,不会再有秒数了。
所以可以通过数据是否失效控制业务行为!
string数据类型操作的注意事项
同时注意数值的最大范围!
java中是long的范围!
mysql用下划线分割,但是redis中是冒号
第一种方便操作,但是第二种是一改全改需要全改,但是方便查看。
所以需要根据使用场景来看。
key的设置约定