rdb

Redis6安装(下)

生来就可爱ヽ(ⅴ<●) 提交于 2020-12-25 09:13:10
Redis6安装(下) - 集群与故障转移 Redis Cluster 搭建准备工作 搭建集群之前,务必有一点需要注意就是选举,因为在如今很多的分布式中间件里,集群都会有选举这个概念,一定要达到半数以上的节点,才能够发起公平的投票,否则就会脑裂,比如redis,zk,es等,所以至少保证3个master节点,master会发起选举投票的。这一点要须知。 配置6个节点的虚拟机(预先做好) 192.168.1.221 192.168.1.222 192.168.1.223 192.168.1.224 192.168.1.225 192.168.1.226 192.168.1.227(新增Master) 192.168.1.228(新增Slave) 每个节点搭建单机redis,清理aof和rdb文件(预先做好) 如果为单实例的Redis设置了密码password,那么每个节点都必须要设置masterauth,也就是对应密码,这样是为了master挂掉以后,对应的slave可以升级为master。 需要注意,选举的过程会短暂的对外不可用。 Redis Cluster 搭建实操演练 附: 关闭redis ./redis-cli -p <修改的端口号> -a <修改的密码> shutdown 开启redis: ./redis-server redis.conf 每个单实例中的 redis

Redis面试总结

柔情痞子 提交于 2020-12-25 05:05:59
Redis port:6379 简介 redis3.0以上支持redis cluster redis :remote dictionary server 远程字典服务 nosql非关系型数据库:redis/memcached/mongoDB/hbase redis和memcached区别 1)redis支持存储多种数据结构 redis不仅仅支持简单的K/V数据类型的存储,同时还提供string(字符串)、list(列表)、set(集合)、zset(有序集合),hash(哈希数据)等数据结构的存储 支持更大的value数据:memcache单个key value最大,支持1MB,而redis最大支持512MB。 2)redis支持数据的备份 redis支持数据的备份,即master<----->slave模式的数据备份,redis通过哨兵(sentlinet)来进行主从的切换 从redis 3.0开始支持redis cluster 集群 3)redis支持数据持久化(RDB/AOF) 1:在redis中并不是所有的数据都一直存储在内存中的,这是redis和memcache最致命的优势,反之memcached存储的数据是完全存储在内存中的 2:另外redis单线程,memcached多线程(多线程的好处-->可以使用多核心cpu) 3:虽然

自学七天,我是如何通过软考系统架构师

故事扮演 提交于 2020-12-24 13:20:58
此文Mac分风格阅读链接:https://mp.weixin.qq.com/s/WWohgIH96zoOhTkGAhv1bQ 前言 软考复习的方式可以分为两种:报班和自学。当然也有加QQ要求共同分摊网课费用的,当然被我义正言辞地无情拒绝。原因很简单:没钱。于是前前后后自学了七天,最终考过了系统架构师。或许我的学习模式不适合你,但至少会让你少走很多弯路。 首先晒一下成绩,开心的一批,虽然考的不是很好!!每科满分75,需要同时都>=45分才算合格。 软考初衷 2020,感觉要改变一下自己。毕业两年没考过证书,百度了一下了解到软考,于是脑子一热就报了个高级软件架构师,反正报名费都一样。在网上搜了搜前辈们的经验,说是留出一个月复习时间就足够了,报完名就放在一边了。 10月8日国庆假期结束,还有整整一个月的复习时间。可不巧的是,我是拖延症晚期,从30天复习时间缩减到20天,再缩减到到15天。然后参加了两场婚礼结婚过去了5天,公司系统升级又通宵了2天,一转眼就十月底了。最后只有7天时间可以复习。最后抱着破釜沉舟,背水一战,乘风破浪、重在参与的心态决定挣扎自救一波。 资料篇 视频资料 工欲善其事必先利其器,没有资料还复习个锤子。在找资料这条路上我是做了很多无用功。因为个人的习惯偏向于视频学习,可是在B站找到了寥寥几个和架构师有关的学习视频。要不就是知识点覆盖不全面,要不就是讲的拖拖沓沓

Redis:从应用到底层,一文帮你搞定

£可爱£侵袭症+ 提交于 2020-12-23 10:47:25
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者丨sowhat1412 来源丨sowhat1412(ID:sowhat9094) 高清思维导图已同步Git:https://github.com/SoWhat1412/xmindfile,关注公众号sowhat1412获取海量资源 总感觉哪里不对,但是又说不上来 1、基本类型及底层实现 1.1、String 用途: 适用于简单key-value存储、setnx key value实现分布式锁、计数器(原子性)、分布式全局唯一ID。 底层 :C语言中String用char[]数组表示,源码中用 SDS (simple dynamic string)封装char[],这是是Redis存储的 最小单元 ,一个SDS最大可以存储512M信息。 struct sdshdr{ unsigned int len; // 标记char[]的长度 unsigned int free; //标记char[]中未使用的元素个数 char buf[]; // 存放元素的坑 } Redis对SDS再次封装生成了 RedisObject ,核心有两个作用: 说明是5种类型哪一种。 里面有指针用来指向 SDS。 当你执行 set name sowhat

5种Redis数据结构详解

倖福魔咒の 提交于 2020-12-19 15:24:57
本文主要和大家分享 5种Redis数据结构详解,希望文中的案例和代码,能帮助到大家。 转载链接:https://www.php.cn/php-weizijiaocheng-388126.html 2.1.1 全局命令 1 查看所有键 key* 2 键总数 dbsize (dbsize命令在计算键总数的时候不会遍历所有键,而是直接获取Redis内置的键总数变量,时间复杂度为O(1),而keys命令会遍历所有键,时间复杂度为O(n),当Redis保存了大量键时,线上环境禁止使用) 3 检查键是否存在 exists key 存在返回1,不存在返回0 4 删除键 del key 返回成功删除键的个数,不存在的返回0 5 键过期 expire key seconds ttl 命令会返回剩余过期时间 -1 键没设置过期时间 -2 键不存在 6 键的数据类型结构 type key 返回类型,不存在返回none 2.1.2 数据结构和内部编码 每种数据结构都有自己的底层的内部编码实现,而且是多种实现,这样Redis会在合适的场景选择合适的内部编码 每种数据结构都有两种以上的内部编码实现,例如list数据结构包含了linkedlist和ziplist两种内部编码,可以通过object encoding命令查询内部编码 Redis这样设计有两个好处:   第一:可以改进内部编码

3.Redis持久化

走远了吗. 提交于 2020-12-19 13:48:03
持久化 1、RDB 概念 RDB持久化可以在指定的时间间隔内生成数据集的时间点内存快照 配置 1、save 60 10000 2、rdbcompression yes 3、dbfilename "dump_6379.rdb" 4、dir "/appdata/redis/savefile"(AOF同) 命令 save 通过主进程,造成阻塞,期间不能执行任何命令 bgsave fork()子进程后台进行 优点 1、恢复速度快,但载入过程中会令redis一直处于阻塞状态,直到载入完成; 2、可压缩保存; 3、可最大化Redis性能,父进程fork子进程完成保存操作。 缺点 1、数据非实时保存,易丢失部分数据; 2、数据集大时,fork()操作耗时且消耗cpu。 2、AOF 概念 AOF 持久化记录服务器执行的所有写操作命令(append-only file) 配置 1、appendfsync 1、always 2、everysec 3、no(由系统决定同步频率) 2、appendonly yes 3、appendfilename "appendonly.aof" 4、auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb AOF还原过程 创建一个不带网络连接的伪客户端,因为redis的命令只能在客户端上下文中执行;

Redis 核心技术

北慕城南 提交于 2020-12-18 17:32:13
1. Redis 核心数据结构与高性能原理 1.1 Redis 核心数据结构 1.1.1 string 1.1.2 hash 1.1.3 list 1.1.4 set 1.1.5 zset 1.1.6 bit 1.1.7 geo 1.1.8 其他高级命令 1.2 Redis 高性能核心原理 1.3 管道(pipeline) 1.4 Lua 脚本 1.5 Redis 的设计与实现 2. Redis 持久化、主从与哨兵架构 2.1 Redis 持久化 2.1.1 RDB 快照(snapshot) 2.1.2 AOF(append-only file) 2.1.3 RDB 与 AOF 的选择 2.1.4 混合持久化 2.2 Redis 主从架构 2.3 Redis 哨兵高可用架构 2.3.1 哨兵 leader 选举流程 2.3.2 哨兵架构缺点 3. Redis 集群架构 3.1 集群原理分析 3.1.1 槽位定位算法 3.1.2 跳转重定向 3.1.3 Redis 集群节点间的通信机制 3.1.4 网络抖动 3.2 集群选举原理分析 3.2.1 集群是否完整才能提供服务 4. Redis 分布式锁 4.1 分布式锁的适用场景 4.2 Redis 分布式锁的实现 4.3 Redis 实现分布式锁的问题 4.4 如何保障一致性问题 4.5 高性能的分布式锁如何实现 5. Redis

Redis基础、高级特性与性能调优

。_饼干妹妹 提交于 2020-12-18 05:04:51
本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概览Redis提供的高级能力,并在部署、维护、性能调优等多个方面进行更深入的介绍和指导。 本文适合使用Redis的普通开发人员,以及对Redis进行选型、架构设计和性能调优的架构设计人员。 目录 概述 Redis的数据结构和相关常用命令 数据持久化 内存管理与数据淘汰机制 Pipelining 事务与Scripting Redis性能调优 主从复制与集群分片 Redis Java客户端的选择 概述 Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库、缓存服务或消息服务使用。 Redis支持多种数据结构,包括字符串、哈希表、链表、集合、有序集合、位图、Hyperloglogs等。 Redis具备LRU淘汰、事务实现、以及不同级别的硬盘持久化等能力,并且支持副本集和通过Redis Sentinel实现的高可用方案,同时还支持通过Redis Cluster实现的数据自动分片能力。 Redis的主要功能都基于单线程模型实现,也就是说Redis使用一个线程来服务所有的客户端请求,同时Redis采用了非阻塞式IO,并精细地优化各种命令的算法时间复杂度,这些信息意味着: Redis是线程安全的(因为只有一个线程),其所有操作都是原子的,不会因并发产生数据异常

[Redis] Redis基础用法、高级特性与性能调优以及缓存穿透等分析

Deadly 提交于 2020-12-18 02:52:58
一、Redis介绍   Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库、缓存服务或消息服务使用。Redis支持多种数据结构,包括字符串、哈希表、链表、集合、有序集合、位图、Hyperloglogs等。Redis具备LRU淘汰、事务实现、以及不同级别的硬盘持久化等能力,并且支持副本集和通过Redis Sentinel(哨兵)实现的高可用方案,同时还支持通过Redis Cluster(集群)实现的数据自动分片能力。   Redis的主要功能都基于单线程模型实现,也就是说Redis使用一个线程来服务所有的客户端请求,同时Redis采用了非阻塞式IO,并精细地优化各种命令的算法时间复杂度,这些信息意味着: Redis是线程安全的(因为只有一个线程),其所有操作都是原子的,不会因并发产生数据异常 Redis的速度非常快(因为使用非阻塞式IO,且大部分命令的算法时间复杂度都是O(1)) 使用高耗时的Redis命令是很危险的,会占用唯一的一个线程的大量处理时间,导致所有的请求都被拖慢。(例如时间复杂度为O(N)的KEYS命令,严格禁止在生产环境中使用) 二、Redis数据结构及常用的命令 1 key设置注意事项   Redis采用Key-Value型的基本数据结构,任何二进制序列都可以作为Redis的Key使用(例如普通的字符串或一张JPEG图片)  

面试题:Redis 40 道

夙愿已清 提交于 2020-12-15 02:21:59
点击上方“ 码农进阶之路 ”,选择 “ 设为星标 ” 回复 “ 面经 ” 获取面试资料 1、什么是Redis? Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,即master-slave模式的数据备份。 Redis 优势 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。 Redis与其他key-value存储有什么不同? Redis有着更为复杂的数据结构并且提供对他们的原子性操作