![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
五山口老法师
腾讯后台开发工程师
展开
-
redis:RDM连接阿里云redis服务器
先给结论:这几天踩了一个坑,redis在启动的时候,如果你对redis.conf进行了修改,则需要在重启redis时带上配置文件,否则redis不会对修改的redis生效,真是个坑货,就这里被坑了,以为会主动去加载配置。redis默认在没有设置密码且bind在127.0.0.1时开启了保护模式。因此需要手动修改配置文件,将bind 127.0.0.1 改为 #bind 12...原创 2019-10-19 11:31:00 · 1652 阅读 · 2 评论 -
Redis : redis事务
Redis的事务功能详解MULTI、EXEC、DISCARD和WATCH命令是Redis事务功能的基础。Redis事务允许在一次单独的步骤中执行一组命令,并且可以保证如下两个重要事项:>Redis会将一个事务中的所有命令序列化,然后按顺序执行。Redis不可能在一个Redis事务的执行过程中插入执行另一个客户端发出的请求。这样便能保证Redis将这些命令作为一个单独的隔离操作执行...原创 2019-01-07 17:19:33 · 154 阅读 · 0 评论 -
Redis:事务、管道、Lua脚本
1. Redis事务定义Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行。事务的原理是先将属于一个事务的命令发送给Redis,然后再让Redis依次执行这些命令。1. Redis保证一个事务中的所有命令要么都执行,要么都不执行。如果在发送EXEC命令前客户端断线了,则Redis会清空事...原创 2019-01-08 00:48:50 · 431 阅读 · 0 评论 -
Redis:事件驱动(IO多路复用)
目录§ 从Redis的工作模式谈起§ Reactor模式· C10K问题· I/O多路复用技术· Reactor的定义· Java中的NIO与Netty§ Redis与Reactor§ 总结§ 参考资料从Redis的工作模式谈起我们在使用Redis的时候,通常是多个客户端连接Redis服...原创 2019-01-08 01:32:06 · 370 阅读 · 0 评论 -
Redis:redis和memcached 比较
两者都是非关系型内存键值数据库(NOSQL),主要有以下不同:数据类型Memcached 仅支持字符串类型,而 Redis 支持五种不同的数据类型,可以更灵活地解决问题。数据持久化Redis 支持两种持久化策略:RDB 快照和 AOF 日志,而 Memcached 不支持持久化。分布式Memcached 不支持分布式,只能通过在客户端使用一致性哈希来实现分布式存储,这种方式...原创 2019-01-08 20:01:00 · 166 阅读 · 0 评论 -
Redis: 跳跃表
总结:基于链表的查询由于不能使用二分查找算法,因此需要挨个遍历链表元素对比定位。插入和删除操作虽然只需要进行指针的变换,但首先还是要定位到插入位置,因此当链表的数据量比较大的时候,就会出现效率很低,非常的耗时。为了减少遍历时比较的次数,提出将链表中部分的关键节点提取出来。例如1-2-3-4-5-6-7-9,将奇数点1-3-5-7-9提取出来作为关键点,当我要插入8的时候,就只需要和1,3,...原创 2019-03-04 22:31:07 · 1016 阅读 · 0 评论 -
数据库:redis和MySQL如何做到数据的一致性?
redis系列之数据库与缓存数据一致性解决方案-- 来自中华石杉老师视频数据库与缓存读写模式策略写完数据库后是否需要马上更新缓存还是直接删除缓存?(1)、如果写数据库的值与更新到缓存值是一样的,不需要经过任何的计算,可以马上更...原创 2019-03-05 12:50:34 · 992 阅读 · 0 评论 -
redis:list的底层实现--压缩列表
压缩列表是list和hash的底层实现之一。为了节约内存而开发的。什么时候使用?1)当list中的只包含少量列表项,每个列表项要么只包含小整数,要么就是长度比较短的字符串。2)当hash里包含的kv都是小整数或者短字符串的话。Redis压缩列表原理与应用压缩列表是一种数据结构,这种数据结构的功能是将一系列数据与其编码信息存储在一块连续的内存区域,这块内存物理上是连续的,逻...原创 2019-03-05 23:43:06 · 3800 阅读 · 0 评论 -
redis: string类型设置过期时间后 再进行set操作,会清除过期时间
redis的set操作实际上是: 删除之前的key,再创建一个新的key,所以之前key就会被删除连带赋予的过期时间,这时我们建议使用setrange 命令进行覆盖操作,避免过期时间被删除.redis 的在线测试网址 (http://try.redis.io/)首先设置一个简单的string类型key:set key 123;为他设置过期时间(在这里我使用的是expirea...原创 2019-03-09 19:02:49 · 2372 阅读 · 0 评论 -
Hiredis库的简单使用
0. 前言 Hiredis是一个Redis的C客户端库函数,基本实现了Redis的协议的最小集。这里对hiredis的api作基本的介绍以及应用,主要参考hiredis的README文件以及相关源码。1. 同步APIredisContext,该库的上下文环境。 1 /* Context for a connection to Redis */ 2 typedef stru...原创 2019-04-20 10:56:25 · 929 阅读 · 0 评论 -
Redis集群:sharding策略
为什么集群?通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取。Redis是一个很好的Cache工具。大型网站应用,热点数据量往往巨大,几十G上百G是很正常的事儿,在这种情况下,如何正确架构Redis呢?首先,无论我们是使用自己的物理主机,还是使用云服务主机,内存资源往往是有限制的,scale up不是一个好办法,我们需要scale out横向可伸缩扩展,这需...原创 2019-01-03 12:14:58 · 1244 阅读 · 0 评论 -
Redis:内存满了的解决方案
1,增加内存;2,使用内存淘汰策略。(LRU)3,Redis集群。 重点介绍下23;第2点:我们知道,redis设置配置文件的maxmemory参数,可以控制其最大可用内存大小(字节)。那么当所需内存,超过maxmemory怎么办?这个时候就该配置文件中的maxmemory-policy出场了。其默认值是noeviction。下面我将列出当可用内存不足时,删...原创 2019-01-03 10:49:30 · 5306 阅读 · 1 评论 -
Redis持久化:AOF和RDB
持久化(persistence)Redis 持久化Redis 提供了多种不同级别的持久化方式:RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。 AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾...原创 2019-01-03 00:37:23 · 148 阅读 · 0 评论 -
Redis:常见的面试题
Redis的那些最常见面试问题 先把这些面试题给浏览一遍,大概知道redis的一些相关名词,接下来几篇博客才会继续的详细一些写redis的一些特性~~然后慢慢把redis学会。 1.什么是Redis?Redis 是一个基于内存的高性能key-value数据库。 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据...原创 2018-12-17 16:42:36 · 334 阅读 · 0 评论 -
Redis集群:哨兵(Sentinel)
Redis Sentinel机制与用法说明(哨兵模式) 1、主Redis与各个从Redis之间能够实现高可用(监控、自动故障迁移等),这个委托给redis-sentinel来实现。 2、业务代码中为分散redis服务的压力,全部写操作走主库,部分读操作需要走从服务器的业务需求。(就目前jedis 2.6.2版本中的JedisSentinelPool做不到这点) 3、对多个Master-Sl...原创 2019-01-04 15:16:31 · 273 阅读 · 0 评论 -
Redis集群:redis cluster方案
redis集群原理之官方的Redis Cluster方案redis是单线程,但是一般的作为缓存使用的话,redis足够了,因为它的读写速度太快了。 官方的一个简单测试:测试完成了50个并发执行100000个请求。 设置和获取的值是一个256字节字符串。结果:读的速度是110000次/s,写的速度是81000次/s 在这么快的读写速度下,对于一般程序来说...原创 2019-01-04 16:26:48 · 197 阅读 · 0 评论 -
Redis集群:一致性哈希
一、Redis集群的使用我们在使用Redis的时候,为了保证Redis的高可用,提高Redis的读写性能,最简单的方式我们会做主从复制,组成Master-Master或者Master-Slave的形式,或者搭建Redis集群,进行数据的读写分离,类似于数据库的主从复制和读写分离。如下所示:同样类似于数据库,当单表数据大于500W的时候需要对其进行分库分表,当数据量很大的时候(标准可...原创 2019-01-04 17:32:44 · 1879 阅读 · 0 评论 -
Redis:redis入门
一、前言近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据” ,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis、Memcached等,而笔者目前最常用的也只有Redis这一种。如果你在以前面试的时候还没有遇到过面试官问你:为什么说...原创 2019-01-04 18:02:36 · 136 阅读 · 0 评论 -
缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
一、缓存雪崩缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间(例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。缓存正常从Redis中获取,示意图如下:缓存失效瞬间示意图如下:缓存失效时的雪...原创 2019-01-04 19:17:19 · 183 阅读 · 0 评论 -
Redis:Redis集群实战
Redis集群搭建与简单使用介绍安装环境与版本用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master、3 salve 环境。redis 采用 redis-3.2.4 版本。两台虚拟机都是 CentOS ,一台 CentOS6.5 (IP:192.168.31.245),一台 CentOS7(IP:192.168.31.210) 。安装过程1. 下载并解压...原创 2019-01-04 19:48:40 · 162 阅读 · 0 评论 -
Redis:redis cluster的实现细节
本片博文主要介绍:rediscluster 主要实现的是 数据分片到每一个节点,各节点之间如何通讯并保持数据的一致性、节点状态的同步性!如何即时刷新整个集群系统的状态更新。1)数据分片 16384个slot2)客户端对每个节点请求的时候,如果是服务器端分片策略,那么当客户端请求过来,会出现重定向的过程。 服务器计算出正确的节点,并回送地址。 MOVE...原创 2019-01-07 16:12:11 · 296 阅读 · 0 评论 -
Redis:master/slave、sentinel、Cluster简单总结
一、单节点实例 单节点实例还是比较简单的,平时做个测试,写个小程序如果需要用到缓存的话,启动一个Redis还是很轻松的,做为一个key/value数据库也是可以胜任的。单节点部署参照:http://www.cnblogs.com/yiwangzhibujian/p/7053840.html 中的初级教程。二、主从模式(master/slaver) 主从模式的简介和配置,此处不再说,...原创 2019-01-07 16:17:38 · 434 阅读 · 0 评论 -
Redis:相关知识点纵观
这篇文章先简单的介绍一下redis有什么相关知识点,然后再从接下去的一些文章对一些重要的知识点进行总结。一、Redis 是什么Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。五种类型数据类型为:字符串、列表、集合、有序集合、散列表。Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展...原创 2018-12-06 11:56:07 · 184 阅读 · 0 评论