NoSql
阿翔同学
这不是通往幼儿园的车车
展开
-
NoSql-Redis缓存穿透,击穿,雪崩
【面试高频,工作常用】服务的高可用问题! 在这里我们去分析解决方案的底层!Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一 些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据 的一致性要求很高,那么就不能使用缓存。 另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。 如果MySql中也没有信息2,那么如果有恶意竞争的对手发起大量的 请求,MySql的本来就没原创 2020-10-18 12:07:39 · 121 阅读 · 0 评论 -
NoSql-Redis主从同步【哨兵模式】
前面我们介绍了Redis主从同步的第一阶段,今天来介绍第二阶段【哨兵模式】,在介绍之前我补充一点求关注Redis主从同步的复制原理:Slave 启动成功连接到 master 后会发送一个sync同步命令 Master 接到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行 完毕之后,master将传送整个数据文件到slave,并完成一次完全同步。 全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。 增量复制:Master原创 2020-10-15 10:45:49 · 147 阅读 · 0 评论 -
NoSql-Redis主从复制【读写分离】
前面我们介绍了 Redis中的发布与订阅,今天我们来讲一讲Redis的主从复制求三联一.主从复制含义是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点 (master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。 Master以写为主,Slave 以读为主。注意:默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。(一对.原创 2020-10-13 13:27:54 · 218 阅读 · 3 评论 -
NoSql-Redis的发布订阅
前面我们介绍了Redis的持久化,今天来介绍一下Redis的发布订阅Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。微信、 微博、关注系统! Redis 客户端可以订阅任意数量的频道。 订阅/发布消息图: 第一个:消息发送者, 第二个:频道 第三个:消息订阅者! 如图:例如:当有新的消息时候,通过PUBLISH命令 把消息发送到channel1【频道1】,这个消息就会被订阅这个channel的三个client看到了。原创 2020-10-12 09:47:59 · 179 阅读 · 0 评论 -
NoSql-Redis持久化
前面我们讲了Redis中底层的数据结构,今天我们来讲讲它的持久化1601093438650昨天中秋节也祝大家中秋节愉快,也能持久化,【开车结束,进入正题】一.Redis持久化 面试和工作,持久化都是重点! Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中 的数据库状态也会消失。所以 Redis 提供了持久化功能! 方式1:RDB(Redis DataBase)在主从复制中,rdb就是备用了!从机上面! 注意..原创 2020-10-02 15:47:00 · 424 阅读 · 0 评论 -
NoSql-Redis底层数据结构
前面我们介绍了五种 Redis 的基本类型,现在我们看看到底他们用到了什么数据结构求关注【资源来源:redis官网】STRING(字符串) LIST(列表) SET(集合) ZSET(有序集合) HASH(哈希)第一篇文章我们就说过 Redis 是用 C 语言写的,但是对于Redis的字符串,却不是 C 语言中的字符串(即以空字符’\0’结尾的字符数组),它是自己构建了一种名为 简单动态字符串(simple dynamic string,SDS)的抽象类型,并将 SDS 作为 .原创 2020-09-29 20:36:52 · 234 阅读 · 0 评论 -
MongoDB-增删查改【CRUD】
前面我们介绍了 MongoDB是什么东西,今天我们就来实际的操作一把,先给UP主整波三连把求关注,点赞,收藏事先说明:方法很多远远不止 这些 我就是介绍介绍基本的 ,你们可以通过官网查询 ,每个标题下面都有很多方法一.创建数据库【这里我们会使用到一个工具,其实什么工具都没所谓,操作命令都是一样的】• use 数据库名 – 使用use时,如果数据库存在则会进入到相应的数 据库,如果不存在则会自动创建 一旦进入数据库,则可以使用db来引用当前库 • db.collection.inser.原创 2020-09-29 17:26:42 · 129 阅读 · 0 评论 -
NoSql-Redis配置文件redis.conf介绍
启动的时候,就通过配置文件来启动! 工作中,一些小小的配置,可以让你脱颖而出! 1.配置文件units单元对大小写不敏感2.包含文件 好比我们 C/C++的include 的一样bind 127.0.0.1 # 绑定的ip protected-mode yes # 保护模式 port 6379 # 端口设置 ...原创 2020-09-29 12:58:47 · 135 阅读 · 0 评论 -
NoSql-C/C++操作Redis
前面我们介绍了这么多今天我们一起来用C/C++操作一下redis数据库,后面我们在介绍redis更多高级的东西。现在我们先来连上操作试试感觉怎么样再说。我们需要一个 开源的hiredis:https://github.com/redis/hiredis 这里的封装大家可以直接来用介绍一些常用的函数:1. redisContext* redisConnect(const char *ip, int port) 该函数用来连接redis数据库,两个参数分别是redis数据库的ip和端...原创 2020-09-28 17:49:32 · 264 阅读 · 0 评论 -
NoSql-Redis事务
前面介绍了 Redis的 基本操作 现在来介绍一些面试 比较容易问道的 东西原创 2020-09-28 16:25:39 · 146 阅读 · 0 评论 -
NoSql-Redis【三种特殊类型-Bitmap】
为什么其他文章都不喜欢讲这些?这些在生活中或者开发中,都有十分多的应用场景,学习了,就是就 是多一个思路!人在江湖飘 ,技多不压身呀位存储 统计用户信息,活跃,不活跃! 登录 、 未登录! 打卡,365打卡! 两个状态的,都可以使用 Bitmaps! Bitmap 位图,数据结构! 都是操作二进制位来进行记录,就只有0 和 1 两个状态!365 天 = 365 bit 1字节 = 8bit 46 个字节左右! 例子:---------------------..原创 2020-09-28 14:32:34 · 87 阅读 · 0 评论 -
NoSql-Redis【三种特殊类型-Hyperloglog】
前面我们介绍了 三种特殊类型中的 操作 经纬度的 地理位置类型,底层用Zset实现的。今天来介绍一下另一种Hyperloglog,那Hyperloglog是什么呢? 有什么用呢?求关注什么是基数? A {1,3,5,7,8,7} B{13,5,7,8} 基数(不重复的元素) = 5,可以接受误差! 简介 Redis 2.8.9 版本就更新了 Hyperloglog 数据结构! Redis Hyperloglog 基数统计的算法!优点:占用的内存是固定,2^64 不同原创 2020-09-28 14:07:43 · 89 阅读 · 0 评论 -
NoSql-Redis三种特殊数据类型-Geospatial
前面我们介绍完了Redis的常见的五种数据类型。现在来介绍一下比较特殊的三种类型之一白嫖者vsup主官方文档:https://www.redis.net.cn/order/3685.html 一.Geospatial 地理位置 朋友的定位,附近的人,打车距离计算? Redis 的 Geo 在Redis3.2 版本就推出了! 这个功能可以推算地理位置的信息,两地之间的距离,方圆 几里的人! 可以查询一些测试数据:http://www.jsons.cn/lngco..原创 2020-09-27 15:41:20 · 171 阅读 · 0 评论 -
NoSQL-MongoDB介绍
首先我们还是来还是来介绍一下数据库一.数据库(Database) • 数据库是按照数据结构来组织、存储和管 理数据的仓库。 • 我们的程序都是在内存中运行的,一旦程 序运行结束或者计算机断电,程序运行中 的数据都会丢失。 • 所以我们就需要将一些程序运行的数据持 久化到硬盘之中,以确保数据的安全性。 而数据库就是数据持久化的最佳选择。 • 说白了,数据库就是存储数据的仓库。二.MongoDB简介前面文章已经介绍了 NoSql 这里 就不多介绍了,官网:https://.原创 2020-09-26 16:31:28 · 150 阅读 · 0 评论 -
NoSql-Redis五大类型之一Zset
前面我们介绍了 Hash类型,今天 来介绍五大常用类型的最后一种 Zset【有序集合】------------------------------------------------------------------------------------------------------------------------------127.0.0.1:6379> ZADD myset libero 2 (error) ERR value is not a valid float原创 2020-09-26 15:06:49 · 86 阅读 · 0 评论 -
NoSql-Redis中Hash类型
前面我们介绍 了 Redis的三种类型 string list set ,今天我们来介绍第四种 hash【这里我默认大家是见过这些常见的数据结构的哦】白嫖者vsup主Map集合,key-map! 时候这个值是一个map集合! 本质和String类型没有太大区别,还是一个简单的 key-vlaue! ---------------------------------------------------------------------------------------------------原创 2020-09-24 15:05:52 · 106 阅读 · 0 评论 -
NoSql-Redis中的Set类型
前面我们介绍了Redis中的String类型,今天我们来了解另外一种类型set【无序不重复集合】set中的值是不能重复的(一种元素只有一个)【下面的命令(特殊的我会注释一下)其他的只要学过英语都知道是什么意思】--------------------------------------------------------------------------------------------------------127.0.0.1:6379> SADD myset one (i.原创 2020-09-23 15:22:18 · 107 阅读 · 0 评论 -
NoSql-redis中List类型
前面我们介绍了 redis中的string 类型,和用法【还是 那句话 这些命令都不用去记忆增加自己的负担留个影响,用的时候查就行了】求关注今天我们来介绍一下 redis中的 列表【当然你可以规定把它玩成 栈和队列都是可以的】所有的list命令都是用l开头的,Redis不区分大小命令 ,别问我什么是链表【默认会数据结构哦】Demo127.0.0.1:6379> ping PONG 127.0.0.1:6379> LPUSH list one (integer) 1原创 2020-09-22 17:48:56 · 91 阅读 · 0 评论 -
NoSql-Redis五大常规类型-String类型
我们来具体介绍一下Redis的五大常用类型白嫖者vsup主【官网解释】Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。 Redis 内置了复制(replication)...原创 2020-09-19 11:17:38 · 113 阅读 · 0 评论 -
NoSql-redis基本命令和redis为什么是单线程的
昨天介绍了 redis的基本操作,今天来介绍一下 redis的基本命令1.首先我们先来 介绍一下 redis默认是有16个数据库的可以使用select 对数据库进行切换【和MySql的use差不多】(如果不切换,某人的数据库就是 0);select 3 切换数据库 DBSIZE 查看DB大小! keys * 查看数据库所有的key flushdb 清除当前数据库 flushdb flushall 清除全部数据库的...原创 2020-09-19 09:31:50 · 79 阅读 · 0 评论 -
NoSql-Redis基本操作
前面介绍了Redis 是什么,现在我们来介绍一下 基本的操作1.先启动redis-server2. 通过命令查看 redis 的端口号 和 进程号,当然上面启动的时候 也有关于进程号的日志信息3.使用redis-cli 进行连接测试!【如果输入ping 显示一个 PONG 就说明连接上了】4.如何关闭Redis服务呢? 方式有很多 你可以 kill -9 6379 , SHUTDOWN 或者其他的都是可以的5.redis的性能测试redis-benchmark ..原创 2020-09-18 10:04:18 · 104 阅读 · 0 评论 -
NoSql-Redis介绍
还是那句话只要没学死,就往死里学在NoSql 中 redis 算是非常出名的一种NoSql了,那么redis 是什么?先看个视频了解一下一.介绍Redis(Remote Dictionary Server ),即远程字典服务 !是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库, 并提供多种语言的API。 redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了 master-slav.原创 2020-09-18 09:13:56 · 226 阅读 · 0 评论 -
NoSql-什么是NoSql
NoSql 想必大家都听说过把,那他到底是什么东西呢?先看个视频了解一下求关注字面意思:NoSql = Not only Sql;一.NoSql引出的原因1.关系型数据库如(MySql):表格 ,行 ,列 2.泛指非关系型数据库的,随着web2.0互联网的诞生!传统的关系型数据库很难对付web2.0时代!尤其 是超大规模的高并发的社区! 暴露出来很多难以克服的问题(比如说用关系型数据库表示 你大姨的三表弟的二伯父,你想想需要多少张表,而且表与表之间的联系显得非常的复杂。),..原创 2020-09-17 14:19:13 · 1413 阅读 · 0 评论