目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

标签: NoSQL (11)

ClickHouse

OLTP 全称 OnLine Transaction Processing,联机事务处理系统, 就是对数据的增删改查等操作。存储的是业务数据,来记录某类业务事件的发生,比如下单、支付、注册、等等。 典型代表有Mysql、 Oracle等数据库,对应的网站、系统应用后端数据库 针对事务进行操作,对响应时间要求高,面向前台应用的,应用比较简单,数据量相对较少,是GB级别的。 面向群体:业务人员 OLAP 当数据积累到一定的程度,需要对过去发生的事情做一个总结分析时,就需要把过去一段时间内产生的数据拿出来进行统计分析,从中获取想要的信息,为公司做决策提供支持,这个就是做OLAP了。 OnLine Analytical Processing,联机分析处理系统,存储的是历史数据,对应的风控平台、BI平台、数据可视化等系统就属于OLAP。 OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策,并且提供直观易懂的查询结果 典型代表有 Hive、ClickHouse 针对基于查询的分析系统,基础数据来源于生产系统中的操作数据,数据量非常大,常规是TB级别的 面向群体:分析决....

Redis6

安装 # 安装gcc yum install -y gcc-c++ autoconf automake # centos7 默认的 gcc 默认是4.8.5,版本小于 5.3 无法编译,需要先安装gcc新版才能编译 gcc -v # 升级新版gcc,配置永久生效 yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils scl enable devtoolset-9 bash echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile # 安装redis [root@localhost redis6]# mkdir -p /usr/local/redis [root@localhost software]# tar -zxvf redis-6.2.1.tar.gz [root@localhost software]# mv redis-6.2.1 redis6 [....

布隆过滤器

布隆过滤器简介  布隆过滤器(英语:Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。  布隆过滤器可以理解为一个不怎么精确的 set 结构,当你使用它的 contains 方法判断某个对象是否存在时,它可能会误判。但是布隆过滤器也不是特别不精确,只要参数设置的合理,它的精确度可以控制的相对足够精确,只会有小小的误判概率。当布隆过滤器说某个值存在时,这个值可能不存在;当它说不存在时,那就肯定不存在。 优点  相比于其它的数据结构,布隆过滤器在空间和时间方面都有巨大的优势。布隆过滤器存储空间和插入/查询时间都是常数(即复杂度为 O(k))。另外,散列函数相互之间没有关系,方便由硬件并行实现。布隆过滤器不需要存储元素本身,在某些对保密要求非常严格的场合有优势。 缺点  但是布隆过滤器的缺点和优点一样明显。误算率是其中之一。随着存入的元素数量增加,误算率随之增加。但是如果元素数量太少,则使用散列表足矣。 ....

Redis持久化策略

RDB 持久化原理 配置文件路径 VIM /test/redis-4.0.6/redis.conf # 时间策略,表示900s内如果有1条是写入命令,就触发产生一次快照,可以理解为就进行一次备份 # 实际生产环境每个时段的读写请求肯定不是均衡的,为此redis提供一种根据key单位时间操作次数来触发一次备份到磁盘,我们可以自由定制什么情况下触发备份,此功能起到平衡性能与数据安全的作用 save 900 1 save 300 10 #表示300s内有10条写入,就产生快照 save 60 10000 # redis servercron 类似于linux的crontab,默认每隔100毫秒执行一次 :检测300s内有没有10条写入,如果有就备份 # 文件名称 dbfilename dump.rdb # 如果持久化出错,主进程是否停止写入 stop-writes-on-bgsave-error yes # 是否压缩 rdbcompression yes # 导入时是否检查 (重启redis,导入rdb文件) rdbchecksum yes # 文件保存路径 dir /test/redis-....

Redis Cluster

部署 Redis Cluster # 安装redis cd /usr/local/ wget http://download.redis.io/releases/redis-4.0.6.tar.gz tar -zxvf redis-4.0.6.tar.gz cd redis-4.0.6 make && make install # 新建集群文件夹 mkdir /usr/local/redis_cluster cd /usr/local/redis_cluster mkdir 7000 7001 7002 7003 7004 7005 cp /usr/local/redis-4.0.6/redis.conf /usr/local/redis_cluster/7000 cp /usr/local/redis-4.0.6/redis.conf /usr/local/redis_cluster/7001 cp /usr/local/redis-4.0.6/redis.conf /usr/local/redis_cluster/7002 cp /usr/local/redis-4....

高可用架构Sentinel

Sentinel 架构体系  可以将 Redis Sentinel 集群看成是一个 ZooKeeper 集群,它是集群高可用的心脏,它一般是由 3~5 个节点组成,这样挂了个别节点集群还可以正常运转。它负责持续监控主从节点的健康,当主节点挂掉时,自动选择一个最优的从节点切换为主节点。客户端来连接集群时,会首先连接 sentinel,通过 sentinel 来查询主节点的地址,然后再去连接主节点进行数据交互。当主节点发生故障时,客户端会重新向 sentinel 要地址,sentinel 会将最新的主节点地址告诉客户端。 如此应用程序将无需重启即可自动完成节点切换。比如上图的主节点挂掉后,集群将可能自动调整为下图所示结构。  主节点挂掉了,原先的主从复制也断开了,客户端和损坏的主节点也断开了。从节点被提升为新的主节点,其它从节点开始和新的主节点建立复制关系。客户端通过新的主节点继续进行交互。  Sentinel 会持续监控已经挂掉了主节点,待它恢复后,此时原先挂掉的主节点现在变成了从节点,从新的主节点那里建立复制关系。 Sentinel 搭建 # 创建目录 [root@localho....

Redis读写分离

读写分离的应用场景  海量并发性能瓶颈处理,横向扩展,大幅度提升抗压能力。  Redis 的主从数据是异步同步的,所以分布式的 Redis 系统并不满足「一致性」要求。当客户端在 Redis 的主节点修改了数据后,立即返回,即使在主从网络断开的情况下,主节点依旧可以正常对外提供修改服务,所以 Redis 满足「可用性」。  运行一些额外的服务器,让它们与主服务器进行连接,然后将主服务器发送的数据副本并通过网络 进行准实时的更新(具体的更新速度取决于网络带宽)通过将读请求分散到不同的服务器上面进行处理, 用户可以从新添加的从服务器上获得额外的读查询处理能力。  Redis 已经发现了这个读写分离场景特别普遍,自身集成了读写分离供用户使用。我们只需在 Redis 的配置文件里面加上一条,【slaveof host port】语句  目前我们讲的 Redis 还只是主从方案,最终一致性,无故障转移功能,主 Master 节点宕机,则无法写入。 读写分离架构配置流程 # 创建目录 [root@localhost redis-replication]# mkdir /usr/local/red....