一个群友给我发消息,“该学的都学了,怎么就找不到心意的工作,太难了”。
很多在近期找过工作的同学一定都知道了,背诵八股文已经不是找工作的绝对王牌。企业最终要的是可以创造价值,或者首先需要干活的人,所以实战很重要。今天这篇文章就是给大家分享一下如何在我们实战生产中使用 redis。
如果不了解 redis 的同学,可以先学习之前的 redis 入门教程。reids 从黑铁到王者
...
⚠️注意:命令不区分大小写,而 key 是区分大小写的。
String 作为最基本的类型,就是普通的 get、set,做简单的 key - value 存储
应用场景:
商品编号生成
文章点赞打赏截图
Map<String, Map<Object, Object>>
语法:
redis 127.0.0.1:6379> HSET KEY_NAME FIELD VALUE
image-20210110223728047
LRANGE
命令可以指定元素获取区间,实现分页查询,比如微博新闻的列表页面、一些高性能查询的场景
redis 127.0.0.1:6379> RPOPLPUSH SOURCE_KEY_NAME DESTINATION_KEY_NAME
redis 127.0.0.1:6379> RPOPLPUSH news:list:websites news:list:websites
lrange article:list 0 10
image-20210111131808595
image-20210111131949452
image-20210111133506484
image-20210111133650920 我关注的人也关注他(大家爱好相同)
image-20210111133831044
image-20210111133958782
zadd board score username
,接着 zrevrange board 0 99
,就可以获取排名前100的用户;zrank board username
,可以看到用户在排行榜里的排名。
image-20210111140054296
image-20210111140639166
下面这三个你可能不太熟悉,耐心看完,这是通俗易懂的。
Bitmap 大家可能有些陌生,什么是 Bitmap 呢?
Bitmap 的底层数据结构用的是 String 类型的 SDS 数据结构来保存位数组,Redis 把每个字节数组的 8 个 bit 位利用起来,每个 bit 位 表示一个元素的二值状态(不是 0 就是 1)。
可以将 Bitmap 看成是一个 bit 为单位的数组,数组的每个单元只能存储 0 或者 1,数组的下标在 Bitmap 中叫做 offset 偏移量。
8 个 bit 组成一个 Byte,所以 Bitmap 会极大地节省存储空间。 这就是 Bitmap 的优势。
HyperLogLog 并非 Redis 一家独有,Redis 只是基于 HyperLogLog 算法实现可一个 HyperLogLog 数据结构,并用该数据结构提供基数统计的功能。其优势就是可以做到只需要 12 kb 的空间大小,就可以实现接近 2^64 量级的基数统计。
HyperLogLog 数据结构并不会保存真实的元数据,所以其核心就是基数估算算法 在工程实践中,通常会用于 App 或页面的 UV 统计。
javapub.net.cn
网站的日活跃用户。通过 ip 在程序中用 HashSet 分析、如果有几百万用户,占用存储无疑是很大的。但是用了 HyperLogLog,事情变得如此简单。因为存储日活数据所需要的内存只有 12K。
HyperLogLog
只提供了 3 个简单的命令。
1. 添加元素到 HyperLogLog 中。 PFADD key element [element ...] 127.0.0.1:6379> pfadd website:javapub:uv 39.1.2.0 2. 返回给定 HyperLogLog 的基数估算。 PFCOUNT key [key ...] 127.0.0.1:6379> pfcount website:javapub:uv 3. 将多个 HyperLogLog 合并为一个 HyperLogLog。PFMERGE destkey sourcekey [sourcekey ...] 127.0.0.1:6379> pfmerge website:javapub:uv website:javapub-2:uv
看到这个名字就知道是经纬度坐标相关。需要涉及到地图的业务才会使用。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。