随笔分类 -  Redis

摘要:有哪些影响Redis性能的因素 Redis 内部的阻塞式操作。 CPU 核和 NUMA 架构的影响。 Redis 关键系统配置。 Redis 内存碎片。 Redis 缓冲区。 1. 客户端的阻塞 Redis 使用了 IO 多路复用机制,能避免主线程一直处于等待状态,所以网络 IO不是导致 Redis 阅读全文
posted @ 2022-12-20 17:06 songguojun 阅读(706) 评论(0) 推荐(0) 编辑
摘要:背景 我们在项目中大量使用Redis承接海量数据的冲击,但是使用过程中也会遇到一些特殊的情况,这个就是缓存击穿、缓存穿透、缓存雪崩。 缓存穿透问题 先来看一个常见的缓存使用方式:读请求来了,先查下缓存,缓存有值命中,就直接返回;缓存没命中,就去查数据库,然后把数据库的值更新到缓存,再返回。 缓存穿透 阅读全文
posted @ 2022-12-20 16:26 songguojun 阅读(236) 评论(0) 推荐(0) 编辑
摘要:1. 背景 Redis现在广泛应用于大中型互联网项目中,最重要的场景就是作为分布式缓存,来应对大流量高并发的冲击,那么为什么Redis有如此高的性能,这篇文章就来分析一下Redis高性能实现原理。 2. Redis高性能能分析 2.1 存储模式:基于内存存储实现 我们都知道内存读写是比在磁盘快很多的 阅读全文
posted @ 2022-12-20 13:59 songguojun 阅读(209) 评论(0) 推荐(0) 编辑
摘要:1. 什么是 Redis? Redis(Remote DIctionary Server)是完全开源免费的,使用ANSI C语言编写、遵守 BSD(伯克利软件发行版)协议,是一个高性能的 key-value 数据库, 并提供多种语言的API调用。 Redis 与其他 key-value 缓存产品有以 阅读全文
posted @ 2020-06-03 16:04 songguojun 阅读(131) 评论(0) 推荐(0) 编辑
摘要:Redis单机问题 说主从复制之前先看看单机有什么问题 1. 机器故障,包含软硬件问题。这个就牵涉到高可用问题。 2. 容量瓶颈,比如一台机器16G内存,Redis要使用20G内存,那么这台单机是满足不了的。这个就牵涉到分布式问题。 3. qps瓶颈 ,Redis官方号称支撑10w QPS,但是目前 阅读全文
posted @ 2019-08-04 22:00 songguojun 阅读(494) 评论(0) 推荐(0) 编辑
摘要:为什么可以使用Redis做计数器 1. Redis 单线程 阻塞式 基于多路I/O复用技术特点。 2. Redis 同一时刻只能处理一个请求。 Redis计数器应用场景 1. 频率控制:接口防刷,密码次数尝试限制。 2. 数量统计:请求量统计。比如业务需求中经常有限制一个手机号一天限制发送n条短信, 阅读全文
posted @ 2019-07-28 12:28 songguojun 阅读(4523) 评论(0) 推荐(0) 编辑
摘要:1. NoSQL与RDBMS直接有什么区别?为什么要使用和不使用NoSQL数据库?说一说NoSQL数据库的几个优点? NoSQL是非关系型数据库,NoSQL = Not Only SQL。 关系型数据库采用的结构化的数据,NoSQL采用的是键值对的方式存储数据。 在处理非结构化/半结构化的大数据时, 阅读全文
posted @ 2019-05-29 23:10 songguojun 阅读(425) 评论(0) 推荐(0) 编辑
摘要:Redis Sentinel简介 Redis的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工将从节点晋升为主节点,再通知所有的程序把 master 地址统统改一遍,然后重新上线。毫无疑问,这种故障处理的方法是效率低下的。于是Redis 从 2.8 开始正式提供了 sentinel 架构来解 阅读全文
posted @ 2019-05-16 21:32 songguojun 阅读(174) 评论(0) 推荐(0) 编辑
摘要:Redis是一个内存的缓存中间件,依靠将数据加载到内存中,用空间换时间,这是它性能优异的一个原因,但是相对于硬盘等设备还是比较贵的。所以在使用redis时候还是需要可以尽可能芳节省内存。 Redis内存消耗分析 1.内存使用统计,进入redis并使用 info 命令。 下面表格列出redis统计内存 阅读全文
posted @ 2019-04-20 10:44 songguojun 阅读(303) 评论(0) 推荐(0) 编辑
摘要:Redis有五种数据类型string、list、hash、set、zset(字符串、哈希、列表、集合、有序集合)并且自实现了简单动态字符串、双端链表、字典、压缩列表(ziplist)、整数集合、跳跃表(skiplist)等数据结构。Redis底层使用了多种数据结构来实现各种特性。对于Redis底层实 阅读全文
posted @ 2019-04-13 13:16 songguojun 阅读(462) 评论(0) 推荐(0) 编辑
摘要:redis5.0总共增加了12项新特性,如下: 1.新增加的Stream(流)数据类型,这样redis就有了6大数据类型,另外五种是String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set有序集合)。它弥补了其它5种数据类型不能实现的功能,比如Lis 阅读全文
posted @ 2019-02-09 23:08 songguojun 阅读(5910) 评论(0) 推荐(0) 编辑
摘要:BitMap介绍 BitMap就是位图,其实也就是字节数组(byte array),用二进制表示,只有 0 和 1 两个数字,位图就是用每一个二进制位来存放或者标记某个元素对应的值。通常是用来判断某个数据存不存在的,因为是用bit为单位来存储所以Bitmap本身会极大的节省储存空间。 如下图字符串在 阅读全文
posted @ 2018-08-08 16:49 songguojun 阅读(4650) 评论(0) 推荐(0) 编辑
摘要:Redis的持久化 redis所有的数据都是保存在内存中,当redis进程挂了或者机器出现宕机等异常情况,如果不讲数据保存在硬盘中,那么数据将会丢失。redis就提供了持久化的功能,就是可以将所有的数据修改也会异步更新在磁盘上。 Redis的持久化方式 Redis提供了两种持久化的方式: 1. RD 阅读全文
posted @ 2018-08-02 18:02 songguojun 阅读(393) 评论(0) 推荐(0) 编辑
摘要:发布订阅中的角色 1. 发布者(publisher) 2. 订阅者(subscriber) 3. 频道(channel) 消息通信模式 Redis中发布者和订阅者都是客户端,而频道是沟通它们两之间的桥梁。 发布者将信息发布到频道上,订阅者去订阅该频道后就能收到发布者所发布的消息。这个就是类似于生产者 阅读全文
posted @ 2018-07-26 16:31 songguojun 阅读(203) 评论(0) 推荐(0) 编辑
摘要:Redis慢查询介绍 了解Redis慢查询前先看看Redis客户端执行一个命令的生命周期,下图就是Redis查询生命周期流程图。 一.步骤 1. 客户端发送命令。 2. Redis服务端接收到命令,因为Redis是单线程,所以这里是需要排队的。 3. Redis服务端执行命令。 4. Redis服务 阅读全文
posted @ 2018-07-15 16:05 songguojun 阅读(480) 评论(0) 推荐(0) 编辑
摘要:引出布隆过滤器(Bloom-Filter) 在海量数据面前如何去过滤,及查找数据。下面有几个问题: 1. 总共有50亿个电话号码,现在已经知道10万个号码,如何在这100亿个电话号码中去快速判断这些10万个号码是否存在? 2. 垃圾邮件过滤。 3.wps文字处理软件错误单词的检测。 4. 网络爬虫重 阅读全文
posted @ 2018-05-08 23:46 songguojun 阅读(779) 评论(0) 推荐(0) 编辑
摘要:Redis特性 1. 速度快。 2. 持久化。 3. 包含多种数据结构。 4. Redis通信协议简单,可以支持多种编程语言。 5. 功能丰富,包括发布/订阅,事务,pipeline(可以提高性能),Lua脚本(可以实现一些自定义命令),BitMap(位图,一种可以用很小的内存空间来实现高效的存储) 阅读全文
posted @ 2018-02-12 16:50 songguojun 阅读(1186) 评论(0) 推荐(1) 编辑
摘要:Redis命令交互模式 redis-cli是Redis命令行界面,可以向Redis发送命令,并直接从终端读取服务器发送的回复。 它有两种主要模式:一种交互模式,其中有一个REPL(read eval print loop),用户输入命令并获取回复; 另一种模式(非REPL)是将命令作为参数发送red 阅读全文
posted @ 2018-02-12 10:38 songguojun 阅读(741) 评论(0) 推荐(0) 编辑
摘要:一.Lua脚本介绍 Lua 是用标准C语言编写并以源代码形式开放的一种轻量小巧的脚本语言,设计目的是为了嵌入应用程序中,为应用程序提供灵活的扩展和定制功能。由于体积小只有200多kb,可以很容易放入集成在一些软件系统里。可以为一些中间件提供支持功能,比如nginx,redis。 Lua脚本可以很容易 阅读全文
posted @ 2018-02-07 15:38 songguojun 阅读(1467) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示