标签:Memcache
大家好,我是大D。 不知是否有小伙伴们疑问,为什么列式存储会广泛地应用在 OLAP 领域,和行式存储相比,它的优势在哪里?今天我们一起来对比下这两种存储方式的差别。 其实,列式存储并不是一项新技术,最早可以追溯到 1983 年的论文 Cantor。然而,受限于早期的硬件条件和应用场景,传统的事务型
SpringDataRedis的序列化的一些问题 RedisTemplate可以接收任意Object作为值写入Redis,但是如果不实现设置序列化器的化默认是采用JDK序列化,序列化后的结果可读性差并且内存占用空间大,如下图。 自定义RedisTemplate的序列化方式 key和 hashKe
概述 MongoDB 是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库中功能最丰富,最像关系型数据库的。 MongoDB 支持的数据结构非常松散,类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。MongoDB 最大的特点是支持的查询语言非常强大,语法类似于面向
集群故障转移 节点下线 在集群定时任务clusterCron中,会遍历集群中的节点,对每个节点进行检查,判断节点是否下线。与节点下线相关的状态有两个,分别为CLUSTER_NODE_PFAIL和CLUSTER_NODE_FAIL。 CLUSTER_NODE_PFAIL:当前节点认为某个节点下线时,
aeEventLoop初始化 在server.c文件的initServer函数中,对aeEventLoop进行了初始化: 调用aeCreateEventLoop函数创建aeEventLoop结构体,对aeEventLoop结构体中的变量进行了初始化,之后调用了aeApiCreate函数创建epol
epoll用法   在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。   epoll函数 1. 创建epoll的句柄   size表示此内核监听的数目一共有多大,当创建好epoll句柄后,它就是会占用一个fd值,在
原创不易,求分享、求一键三连 会议是工作中最重要的组成部分,因为他需要解决两个核心难题: 信息传递; 达成一致; 有效的信息传递是战略落地的前提条件,更多的认知统一更是可以加速成功的发生。但无论是信息传递还是达成一致,都不是一件简单的事情,特别是会议中人多嘴杂,更是加大了这种难度。 所以,如何
Redis 的 Java 客户端 Jedis 优点:以 Redis 命令作为方法名称,学习成本低廉,简单且实用 缺点:Jedis 的实例是线程不安全的,在多线程的环境下需要基于线程池来使用 lettuce(spring 官方默认) 基于 Netty 实现的,支持同步、异步和响应式编程方式,并且是
SQL vs NoSQL 结构化 SQL 是结构化的,一旦定义了表结构,以后在维护数据的时候必须严格遵守定义的结构。 NoSQL 是非结构化的,常见的形式有 Redis 的 Key-Value 存储形式、Document 文档型存储形式、Graph 图类型存储形式 关联的 SQL 数据库可
原创不易,求分享、求一键三连 之前有个同学问我技术部的绩效方案怎么设计,想着这么多年的考核与被考核,我陷入了沉思,一方面是我对考核的认识未必正确、全面,另一方面是有些同学未必能接受这种说法,但教学相长不是坏事,所以还是聊聊对绩效考核的看法吧。 首先,你要清楚绩效考核是属于什么模块,在顶层设计中
Redis常见使用场景 缓存、数据共享分布式、分布式锁、全局 ID、计数器、限流、位统计、购物车、时间线 Timeline、消息队列、抽奖、点赞、签到、打卡、商品标签、商品筛选、用户关注、推荐模型、排行榜. 1.缓存 String类型 例如:热点数据缓存(例如报表、明星出轨),对象缓存、全页
缓存穿透,缓存雪崩,缓存击穿 本文整理自黑马程序员相关资料 缓存穿透 缓存穿透是指客户端请求的数据在缓存中和数据库中都部存在,这样缓存永远不会生效。因此这些请求都会穿过缓存,最终请求到数据库上,对数据库造成非常大的压力。 常见的解决方案有两种: 缓存空对象:当缓存和数据库都没有请求的数据时,
Redis缓存更新策略 本文整理自黑马程序员相关资料 内存淘汰 超时剔除 主动更新 说明 不用自己维护,利用Redis的内存淘汰机制,当内存不足时自动淘汰部分数据。下次查询时更新缓存 给缓存数据添加TTL时间,到期后自动删除缓存,下次查询时更新缓存 编写业务逻辑,在修改数据的同时,更新缓存
分布式锁 本文整理自黑马程序员相关资料 问题的引入 在平时单服务的情况下,我们使用互斥锁可以保证同一时刻只有一个线程执行自己的业务。原理是,在JVM内部维护了一个锁监视器,锁监视器保证了同一时刻只有一个线程获取到锁。但是如果开启了多个服务,就会有多个JVM,从而有多个不同的锁监视器,每个锁监视
我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户。对我来说,只要能获得用户的认可,就是我最大的动力。 这段时间有几个技术小伙伴问了我一个有意思的问题:“你的前端脚本是怎么加密的?” 我决定写帖子来分享这个问题的答案。 在线客服系统访客端: 在线客服系统客服端: 免
作为一项古老的智力游戏,千百年来迷宫都散发着迷人的魅力。但是,手工设计迷宫费时又耗(脑)力,于是,我们有必要制作一个程序:迷宫生成器…… 好吧,我编不下去了。但是,从上面的文字中,我们可以看出,我们此次的主题是:用Python实现一个迷宫生成器。 首先展示一下效果图: 我们先分析一下所需的库:
1. 简介 上一篇我们聊到了mongodb数据块的基本概念,和数据块迁移的主要流程,这篇文章我们聊聊源码实现部分。 2. 迁移序列图 数据块迁移的请求是从配置服务器(config server)发给(donor,捐献方),再有捐献方发起迁移请求给目标节点(recipient,接收方),后续迁移由捐
Redis 因为没有指定配置文件 需配置 redis-server redis.windows.conf 之后自动启动 测试性能 redis-benchmark -p 6379 -c 100 -n 10000 基础概念: 清空当前数据库:flushdb 清空全部数据库:flushall
先上命令速查网站,菜鸟yydshttps://www.runoob.com/redis/redis-strings.html 操作redis的包是go-redis/redis 官方文档 https://redis.uptrace.dev/guide/ github https://github.c
1. 获取指定前缀的key 需求描述: Redis中有大量以xxx开头的key,在不使用keys命令的情况下,如何快速获取这些前缀的key 解决方案: redis自带的scan命令可以解决这个问题 2. SCAN命令 SCAN是一个基于游标的迭代器。这意味着在每次调用该命令时,服务器都会返