缺点:有一定的错误率,使用时需要允许有一定的容错性
常用命令:
pfadd:增加一个hyperloglog类型的key-value(集合)
pfcount:统计一个集合中不重复元素的个数
pfmerge:合并两个或多个集合
127.0.0.1:6379> flushdb # 演示需要,清空当前库
OK
127.0.0.1:6379> pfadd hyper1 a s d f g h j k l a # 创建一个hyperloglog类型,存入元素,
(integer) 1
127.0.0.1:6379> pfcount hyper1 # 统计不重复的元素有多少
(integer) 9
127.0.0.1:6379> pfadd hyper2 a s d f z x v
(integer) 1
127.0.0.1:6379> pfmerge hyper3 hyper1 hyper2 # 合并hyper1,hyper2 命名为hyper3
OK
127.0.0.1:6379> pfcount hyper3
(integer) 12
[](()bitmaps :采用的是位存储,取值为0,1,一般用来记录两种状态,和用来统计。
127.0.0.1:6379> flushdb #演示先清空当前库
OK
127.0.0.1:6379> setbit bitmap 0 0 # 设置一个bitmaps类型,然后将0标时为0
(integer) 0
127.0.0.1:6379> setbit bitmap 1 1
(integer) 0
127.0.0.1:6379> setbit bitmap 2 1
(integer) 0
127.0.0.1:6379> setbit bitmap 3 0
(integer) 0
127.0.0.1:6379> getbit bitmap 3 #用来get某一个标志位的值
(integer) 0
127.0.0.1:6379> getbit bitmap 2
(integer) 1
127.0.0.1:6379> bitcount bitmap #统计有多少个为1的
(integer) 2
[](()Redis事务
==========================================================================
Redis事务本质:一组命令的集合,一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行,特性:一次性,顺序性,排他性
Redis单条命令是保证原子性的,但是事务不保证原子性
常用的命令:
开启事务:multi
开启后可以输入命令入列
执行事务:exec
取消事务:discard
127.0.0.1:6379> flushdb #演示清空当前库
OK
127.0.0.1:6379> multi # 开启事务
OK
127.0.0.1:6379> set name xiec #输入命令入列
QUEUED
127.0.0.1:6379> set age 23
QUEUED
127.0.0.1:6379> set sex nan
QUEUED
127.0.0.1:6379> get name
QUEUED
127.0.0.1:6379> exec # 执行事务,如果想放弃可以输discard
OK
OK
OK
“xiec”
127.0.0.1:6379> get name # 简单测试
“xiec”
[](()Redis事务异常
============================================================================
主要分为两种(可以联系java中的异常进行记忆):
编译型异常:也就是开启事务后,在命令入列的时候就 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 报错了,那样的化在事务中的所有命令都不会被执行
运行时异常:也就是命令都正常入列了,但是通过exec命令执行的时候报错了,那种情况,其他命令正常执行,只有那个错误的命令会把错误抛出来。
[](()watch
通过watch命令可以对一个key进行一个监控,如果在一个事务中,发现这个key的值和开始监控的不一样了,就不进行操作,也可以通过unwatch进行放弃监控操作。
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。
而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本
《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题
《算法的乐趣》共有23个章节:
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
[外链图片转存中…(img-VOADgfDA-1650349651713)]
[外链图片转存中…(img-mFXRTH1r-1650349651714)]