草庐IT

Redis优化神技:如何用更少内存,保存更多数据

  今天跟大家分享一些优化神技,当你面试或者工作中你遇到如下问题,那就使出今天学到的绝招,一招定乾坤! 如何用更少的内存保存更多的数据? 我们应该从Redis是如何保存数据的原理展开,分析键值对的存储结构和原理。 从而继续延展出每种数据类型底层的数据结构,针对不同场景使用更恰当的数据结构和编码实现更少的内存占用。 为了保存数据,Redis需要先申请内存,数据过期或者内存淘汰需要回收内存,从而拓展出内存碎片优化。 最后,说下key、value使用规范和技巧、Bitmap等高阶数据类型,运用这些技巧巧妙解决有限内存去存储更多数据难题…… 这一套组合拳下来直接封神。 具体详情请耐心阅读下文。 主要优

mongodb踩坑

mongo中的日期,在显示上,会比我们正常的时间少8h。如果向mongo中插入数据,数据库显示的时间会少8h如果从mongo中查出数据,那么在idea中会是正常的;而如果是在datagrip/navicat中查,那么显示的时间还是少了8h这只是显示的问题,而对实际操作没有影响。我们在存入数据或者说查找数据的时候,只需要根据真实的业务上需要的时间去操作即可。还有一个就是mongoTemplate查找的时候,要传入字符串,否则会查不到。我想这个原因就和redis中只能存储字符串一样的道理吧。一个业务流程:-查找条件是:在Java代码中定义一个data类型的ArrayList,然后查找mongo数据

Redis集群介绍

什么是集群能够对外提供相同服务的多台服务器组成的集合。为什么要建立集群1.从可用性角度考虑,如果只有一台机器提供服务,一旦出现故障,那么整个服务不可用。2.从容量角度考虑,当服务访问量上升,单台机器无法支撑访问量时,必然要扩容。如何建立集群当有新的节点要加入集群时,客户端可以任选集群中的一个节点,比如A,跟新节点B通过握手建立连接,然后A会将B加入的信息通过Gossip消息通知给集群中的其他节点,其他节点也通过握手跟新节点建立连接。 这里面有几个问题需要回答:如何进行握手?如何进行集群状态同步?如何保存/寻址键值对?如何进行扩容?如何进行故障转移? 集群数据结构在介绍具体功能之前,我们先介绍一

redis实现sentinel哨兵架构

1、redis哨兵(Sentinel)1.1、redis集群介绍前面文章讲的主从复制集群是无法实现master和slave角色的自动切换的,如果master节点出现现redis服务异常、主机断电、磁盘损坏等问题导致master无法使用,而redis主从复制无法实现自动的故障转移(将slave自动提升为新master),需要手动修改环境配置,才能切换到slaveredis服务器,另外当单台Redis服务器性能无法满足业务写入需求的时候,也无法横向扩展Redis服务的并行写入性能。需要解决以上的两个核心问题:master和slave角色的无缝切换,让业务无感知从而不影响业务使用;可横向动态扩展Re

redis实现主从复制

 前面说到了redis在单机的模式下是可以数据持久化的,但是不可以解决单点失败的问题,当单台redis服务器出现问题时,就可能会造成数据的丢失;想要解决这个问题的话我们可以使用Redis的主从模式这也是Redis集群最简单的实现方式,这篇文章我就来简单部署一个Redis主从架构,我准备了3台ubuntu1804的主机,IP地址分别为10.0.0.{101,102,103},主机名分别为master,slave1,slave2。1、脚本安装redis#!/bin/bash#REDIS_VERSION=redis-7.0.5#REDIS_VERSION=redis-7.0.3#REDIS_VERS

redis的持久化存储

  Redis虽然是一个内存级别的缓存程序,也就是redis是使用内存进行数据的缓存的,但是其可以将内存的数据按照一定的策略保存到硬盘中,这样的话就可以实现持久保存的目的;目前的话redis支持的两种不同方式的数据持久化保存机制,分别是RDB和AOF,这两种方式的话很类似于MySQL数据库的dump和二进制日志的方式。1、RBD模式 1.1、RDB模式的工作原理 RDB(RedisDataBase):基于时间的快照,其默认只保留当前最新的一次快照,特点是执行速度比较快,缺点是可能会丢失从上次快照到当前的时间点未做快照的数据。1.2、RDBbgsave实现快照的具体过程 Redis从master

MongoDB - 简单了解

什么是NoSQLNoSQL是一种非关系型数据库管理系统,不需要固定的架构,可以避免JOIN连接,并且易于扩展。NoSQL常用于具有庞大数据存储需求的分布式数据存储,通常是大数据和实时Web应用程序等场景。对于海量数据,使用RDBMS处理是会导致系统响应时间变慢,一般的替代方案都是在负载增加时横向扩展到其他的服务器上,而NoSQL比关系型数据库更容易扩展。NoSQL的功能和优点主要是以下几点:NoSQL数据库不遵循关系模型NoSQL数据库是无模式或具有宽松模式的数据库NoSQL提供简单的API作为存储和查询NoSQL可以以分布式方式执行,易于扩展关于MongoDBMongoDB是一个以BSON为

论文解读丨CIKM'22 MARINA:An MLP-Attention Model for Multivariate Time-Series Analysis

摘要:华为云数据库创新Lab在论文《MARINA:AnMLP-AttentionModelforMultivariateTime-SeriesAnalysis》中提出了华为自研的自回归时序神经网络模型,可用于时序数据的预测以及异常检测。本文分享自华为云社区《CIKM'22MARINA论文解读》,作者:云数据库创新Lab。华为云数据库创新Lab在论文《MARINA:AnMLP-AttentionModelforMultivariateTime-SeriesAnalysis》中提出了华为自研的自回归时序神经网络模型,可用于时序数据的预测以及异常检测。本文发表在CIKM'22上,CIKM会议是由美国

springboot~redis-cluster动态感应的配置

redis-cluster是一个高可用,可分片的分布式redis集群解决方案,建议使用springboot2.3及以上版本的脚手架,如果是springboot2.3的application.yml相关配置spring:redis:database:0#数据库,每个库由16384(0~16383)槽位组成,实现了库的分片password:xxx@xxx#密码timeout:50000#连接超时时间cluster:nodes:-192.168.4.26:6379-192.168.4.26:6380-192.168.4.26:6479-192.168.4.26:6480-192.168.4.26:6

Redis6.2集群部署

基础版(主从模式) 主从模式原理 主从集群优点 读写分离:主写从读,分摊了读写压力. 数据容灾:数据以多分存储在不同节点上. 主从集群缺点 复制延迟:写操作均由主机完成,从机过多数据同步慢. 可用性差:主机故障需手动选举新主机,此间写操作异常. 扩展性差:集群只能有一台主机,从机是全量备份,无法在线扩容. (1)准备集群主机:安装配置n台Redis服务器(n>=1),配置方式参考Redis6.2安装配置.(2)搭建主从集群:从n台Redis主机中任选n-1台作为从机.逐个连接从机,对从机进行主从关系配置(如下).slaveo