Redis三大特殊类型介绍:GEO,hyperloglog,bitmap,Redis事务
缺点:有一定的错误率,使用时需要允许有一定的容错性
常用命令:
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个章节:
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
[外链图片转存中…(img-VOADgfDA-1650349651713)]
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
[外链图片转存中…(img-mFXRTH1r-1650349651714)]
Redis三大特殊类型介绍:GEO,hyperloglog,bitmap,Redis事务相关推荐
- 保存到redis的字符串类型出现斜杆_深入浅出Redis:这次从Redis底层数据结构开始...
1.概述 相信使用过Redis 的各位同学都很清楚,Redis 是一个基于键值对(key-value)的分布式存储系统,与Memcached类似,却优于Memcached的一个高性能的key-valu ...
- redis中hash类型介绍
在redis中,hash数据类型存储的数据与mysql数据库中存储一条记录极为相似,是一个string类型的field和value的映射表,它特别适合用于存储对象,但字段值只能是字符串,不支持其他类型 ...
- python变量分类_Python 入门系列 —— 5. 三大变量类型介绍
多值赋给多变量 Python 允许在一行中将多个值赋给多个变量.x, y, z = "Orange", "Banana", "Cherry" ...
- 跟着狂神学Redis(NoSql+环境配置+五大数据类型+三种特殊类型+Hyperloglog+Bitmap+事务+Jedis+SpringBoot整合+Redis持久化+...)
跟着狂神学Redis 狂神聊Redis 学习方式:不是为了面试和工作学习!仅仅是为了兴趣!兴趣才是最好的老师! 基本的理论先学习,然后将知识融汇贯通! 狂神的Redis课程安排: nosql 讲解 阿 ...
- 【Java从0到架构师】Redis 进阶 - pipline、发布订阅、Bitmap、HyperLogLog、GEO
Redis 原理与实战 Jedis 的基本使用 Redis 数据淘汰策略 Redis 进阶拓展 pipline - 命令批处理,减少大量命令的网络开销,提高操作性能 发布订阅 - subscribe ...
- redis学习--三种特殊数据类型,GEO地理位置,HyperLogLog,BitMap
三种特殊数据类型,GEO地理位置,HyperLogLog,BitMap GEO地理位置 简介 Redis 的 GEO 特性在 Redis 3.2 版本中推出, 这个功能可以将用户给定的地理位置信息储存 ...
- Redis 特殊数据类型 :Geospatial、Hyperloglog、Bitmap
文章目录 Geospatial(地理空间) 介绍 用法 Hyperloglog(基数统计) 介绍 用法 Bitmap(位图) 介绍 用法 Geospatial(地理空间) 在使用一些小程序的时候,里面 ...
- Redis 实战篇:通过 Geo 类型实现附近的人邂逅女神
码老湿,阅读了你的巧用数据类型实现亿级数据统计之后,我学会了如何游刃有余的使用不同的数据类型(String.Hash.List.Set.Sorted Set.HyperLogLog.Bitmap)去解 ...
- 三大缓存框架ehcache、memcache和redis的介绍
三大缓存框架ehcache.memcache和redis的介绍 2016-04-12 架构说 4964 阅读 最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存 ...
- Redis实战(二):Redis 的 String 类型 bitmap
Redis 常用命令.数据类型 查看帮助 To get help about Redis commands type:"help @<group>" to get a ...
最新文章
- ubuntu12.04下NFS链接开发板并测试交叉编译的第一个应用
- 《PSP游戏下载 国际象棋大师:学习的艺术》(Chessmaster : The Art Of Learning)
- 修改了sql默认路径无法登录服务器,PostgreSQL错误'无法连接到服务器:没有这样的文件或目录'...
- android 活动传递数据,如何在Android应用程序的“活动”之间传递数据?
- 服务器推技术相关网址
- 简单谈谈setTimeout与setInterval
- linux中vi模式中c命令,“Linux”系统中“vi ^C ”命令是什么意思?
- informix(南大通用)sql语法的差异
- linux系统清理内存,如何清除linux的内存缓存,缓冲和交换空间
- 数据结构: 树 (查找树)
- 新闻发布系统,我学会了什么?
- 深入浅出python中文版pdf-深入浅出Python 巴里著 中文 PDF版 [37M]
- java数组排序方法
- 【K8S】K8s部署Metrics-Server服务
- C++ 求最大公因数
- 股指期货、股指期权与股票有何不同?
- matlab实现数据压缩,【Matlab】Huffman编码如何实现数据压缩
- 【转载】浅谈人工智能:现状、任务、构架与统一 | 正本清源 -- 朱松纯教授
- Apache服务(一)Apache服务的基本控制
- Django中关于模板的查找顺序