
Redis
文章平均质量分 68
Redis
把苹果咬哭的测试笔记
喜欢分享软件测试、开发相关的各种知识。
展开
-
【Redis】缓存穿透、缓存击穿、缓存雪崩(面试必备)
啥也不说了,面试高频问题。一、缓存穿透用户想要查询一个数据,发现redis内存数据库中没有,也就是说没有命中缓存,也是会向持久层数据库查询,发现也没有,那么本次查询失败。如果此时,用户很多,高并发场景下都去查这个数据,由于缓存都没有命中,于是压力直接打到持久层数据库那里,这就是缓存穿透。通常情况下:客户端请求需要查询数据,会先去缓存查询。若缓存存在数据,就直接返回。如果缓存不存...原创 2021-06-21 08:54:00 · 167 阅读 · 0 评论 -
【Redis】特殊数据类型 - bitmap (位图)
bitmap数据结构,是基于二进制位来进行操作记录的,只有0 和 1两个状态。可以想象成一个数组,里面只有0或者1。能干嘛呢?现实中会有这些场景,比如统计用户信息,活跃用户和非活跃用户、登录的、未登录的用户,打卡的、未打卡的,像这种只有2个状态,并且数据量非常大的,就适合使用bitmap。网上找了一个对比,可以帮助记忆下bitmap的优点。一、setbit设置或者清空key的val...原创 2021-06-20 09:14:00 · 170 阅读 · 0 评论 -
【Redis】特殊数据类型 - HyperLogLog (基数统计)
HyperLogLog 是用来做基数统计的算法。先了解下什么是基数。比如数据集{1, 3, 5, 7, 5, 7, 8},那么这个数据集的基数集为{1, 3, 5 ,7, 8},基数(不重复元素)为5。如果,现在需要统计一下网页的UV,那么就会涉及到去重了,这种场景就很适合用HyperLogLog。这不就是set集合嘛?我用set来得出不重复的元素也可以呀。没错,是可以,但是当数据量非...原创 2021-06-20 08:38:00 · 163 阅读 · 0 评论 -
【Redis】特殊数据类型 - Geospatial (地理空间)
这是在redis 3.2版本推出的,推算地理位置的信息,两地之间的距离,周围方圆的人等等场景都可以用它实现。一、geoadd将指定的地理空间位置(纬度、经度、名称)添加到指定的key中。这里可以借助网上的一些查询经纬度的工具来获取数据。geoadd china:city 121.472644 31.231706 shanghaigeoadd china:city 120.619585 ...原创 2021-06-19 12:25:00 · 149 阅读 · 0 评论 -
【Redis】基本数据类型常用操作 - Zset (有序集合)
有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。不同的是有序集合每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是 O(1)。一、zadd将一个或多个成员元素及其分数值加入到有序集当中。分数值...原创 2021-06-18 07:27:00 · 148 阅读 · 0 评论 -
【Redis】基本数据类型常用操作 - 哈希Hash
redis里的hash是一个string类型的field(字段)和value(值)的映射表。特别适合用于存储对象,每个hash可以存储40多亿键值对。熟悉python的童鞋可以想象成字典dict。之前的数据类型存储都是k-v这样,而hash的存储就是k-dict,dict里又会有属于自己的k-v。一、hset为哈希表中的字段赋值,如果哈希表不存在,创建一个新的哈希表被并进行hset操作。...原创 2021-06-18 07:23:00 · 178 阅读 · 0 评论 -
【Redis】基本数据类型常用操作 - Set
Set是String类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。另外,redis中的set是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。一、sadd 添加一个、多个元素将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。若key不存在,则创建一个只包含添加的元素作成员的集合。sadd myset hello pingguo t...原创 2021-06-18 07:16:00 · 110 阅读 · 0 评论 -
【Redis】基本数据类型常用操作 - List
在redis里,可以把list巧妙的运用成 栈、队列、阻塞队列等。一、push 插入元素1. lpush,在头部插入将一个值或者多个值,插入到列表的头部。lpush list onelpush list twolpush list three使用lpush,这里的l可以看成left,也就是在左边插入,所以目前list是这样的[three, two, one]。2. rpush,...原创 2021-06-17 07:47:00 · 137 阅读 · 0 评论 -
【Redis】基本数据类型常用操作 - String
一、append 追加字符串append name 2222二、strlen 获取key 字符串长度strlen name三、自增、自减文章浏览量,点赞可以用这种实现。incr agedecr age注意这里得是数字才可以进行,所以重设置了一个key。String类型除了可以存字符串也可以是数字。如果要带步长:incrby age 5decrby age 8四、字符...原创 2021-06-16 08:17:00 · 98 阅读 · 0 评论 -
【Redis】基础知识、常用命令
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)与范围查询,bitmaps,hyperloglogs 和地理空间(geospatial) 索引半径查询。Redis 内置了复制(replicati...原创 2021-06-15 08:07:00 · 80 阅读 · 0 评论 -
【Redis】简介、linux下安装启动、性能测试工具redis-benchmark
一、Redis是什么Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。而且免费、开源,是当下最热门的Nosql技术之一,也被称为结构化数据库。redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了mast...原创 2021-06-14 18:34:00 · 242 阅读 · 0 评论 -
【Redis】Nosql非关系型数据库
感谢B站狂神的学习资源,有兴趣的小伙伴可以去搜索:遇见狂神说。再说下我为啥要学redis,因为在面试中遇到过,并且没答好,就这么简单。不过在正式学习redis之前,要先了解NoSQL。一、什么是NoSQLNoSQL是一个泛称,泛指非关系型的数据库。NoSQL并不是没有sql的意思,而是 Not Only Sql,不仅仅是sql。在web2.0时代,传统的关系型数据库(RDBMS)比如m...原创 2021-06-14 16:55:00 · 106 阅读 · 0 评论