Redis

2019阿里云开年Hi购季基础云产品分会场全攻略! ...

我怕爱的太早我们不能终老 提交于 2020-11-20 01:47:52
2019 阿里云 云上Hi购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶段、3月04日-3月16日的新购满返+5折抢购阶段、3月16日-3月31日的续费抽豪礼+5折抢购阶段。 做为整个Hi购季非常重要的一个分会场——基础云产品分会场,3月04开放售卖! 下面,云栖社区小编就为各位开发者分享该会场的攻略: 丨基础云产品分会场活动阵地: https://l.gushuji.site/aliyun 丨关键词:全场低至5折、报名立享满返,最高可返7500元代金券 丨该会场必买爆款清单 报名立享新购满返,最高可返7500元代金券 报名链接: https://l.gushuji.site/aliyun 活动规则: (一)【活动对象】 满足以下全部条件的 阿里云 用户: 1、 阿里云 官网已实名认证的注册会员用户 2、通过本活动页面点击“立即报名”,主动确认参与活动 (二)【活动时间】2019年3月4日-3月15日(满返报名时间:2月25日-3月15日) (三)【活动规则】 1、活动期间,用户在 阿里云 官网新购、升级时长1年及以内的预付费云产品(不包括域名、商标、云通信、虚拟主机、云市场产品、专有云产品),且累计有效消费金额满3000元,即可获得对应金额的 阿里云 云产品代金券 具体如下: · 累计有效消费金额3000

支付系统高可用架构设计实战,可用性高达99.999!

情到浓时终转凉″ 提交于 2020-11-20 00:23:38
作者:冯忠旗 juejin.im/post/5cfde01bf265da1bba58f863 一、背景 对于互联网应用和企业大型应用而言,多数都尽可能地要求做到7*24小时不间断运行,而要做到完全不间断运行可以说“难于上青天”。为此,对应用可用性程度的衡量标准一般有3个9到5个9。 对于一个功能和数据量不断增加的应用,要保持比较高的可用性并非易事。为了实现高可用,「付钱拉」从避免单点故障、保证应用自身的高可用、解决交易量增长等方面做了许多探索和实践。 在不考虑外部依赖系统突发故障,如网络问题、三方支付和银行的大面积不可用等情况下,「付钱拉」的服务能力可以达到99.999%。 本文重点讨论如何提高应用自身的可用性,关于如何避免单点故障和解决交易量增长问题会在其他系列讨论。 为了提高应用的可用性,首先要做的就是尽可能避免应用出现故障,但要完全做到不出故障是不可能的。互联网是个容易产生“蝴蝶效应”的地方,任何一个看似很小的、发生概率为0的事故都可能出现,然后被无限放大。 大家都知道RabbitMQ本身是非常稳定可靠的,「付钱拉」最开始也一直在使用单点RabbitMQ,并且从未出现运行故障,所以大家在心理上都认为这个东西不太可能出问题。 直到某天,这台节点所在的物理主机硬件因为年久失修坏掉了,当时这台RabbitMQ就无法提供服务,导致系统服务瞬间不可用。 故障发生了也不可怕

个人大厂面经分享:抖音三面+腾讯四面+PayPal四面

*爱你&永不变心* 提交于 2020-11-19 07:31:42
本人双非一本非科班,之前在百度和字节实习过,这次其实没抱着什么特别大的希望投递,没想到字节可以再给我一次机会,还是挺开心的。 几场面试下来,面试得自信,声音自信,给面试官一种你啥都会稳如狗的感觉(实际内心慌得不行...),然后表达流畅,吐字清晰,不卑不亢,说话要有逻辑性,不能吞吞吐吐半天说不明白,得总结自己的面经, 形成自己的知识体系 ,别人的面经写的再好也是别人的,自己刷面经总结自己不会的点整理出来才是最有用的 下面是面试经历全部写的是技术面试,hr面就没写了 1. 抖音 整个面试过程,主要围绕算法和实习经历考察,基础知识的话不是很难。每一面的面试官都很nice,特别是三面的面试官,感觉在讨论的时候没有带着面试的压力,就是朋友之间的对话。 抖音一面(60分钟) 自我介绍 说下TreeMap和LinkedHashMap TreeMap怎么按照自己想要的顺序排序 ConcurrentHashMap怎么取的size值 怎么防止恶意请求刷接口 那ES怎么切词的呢,有写过切词插件吗 你在项目中用Redis的场景 说下Redis有哪些数据类型 Redis怎么分片的 Redis的删除策略 抖音二面(60分钟) 你希望你处于一个什么样的工作环境 怎么根据0-5随机函数得到0-8随机函数 缓存和DB之间怎么保证数据一致性 延时消息队列怎么设计Redis的zset

Java后端面试题

烈酒焚心 提交于 2020-11-19 06:34:45
标★号为重要知识点 id全局唯一且自增,如何实现? Redis的 incr 和 increby 自增原子命令 统一数据库的id发放 美团Leaf Leaf——美团点评分布式ID生成系统(批发号段) Twitter的snowflake算法 UUID ★如何设计算法压缩一段URL? 通过发号策略,给每一个过来的长地址,发一个号即可,小型系统直接用mysql的自增索引就搞定了。如果是大型应用,可以考虑各种分布式key-value系统做发号器。不停的自增就行了。第一个使用这个服务的人得到的短地址是 http://xx.xx/0 第二个是 http://xx.xx/1 第11个是 http://xx.xx/a 第依次往后,相当于实现了一个62进制的自增字段即可。 常用的url压缩算法是短地址映射法。具体步骤是: 将长网址用md5算法生成32位签名串,分为4段,,每段8个字符; 对这4段循环处理,取每段的8个字符, 将他看成16进制字符串与0x3fffffff(30位1)的位与操作,超过30位的忽略处理; 将每段得到的这30位又分成6段,每5位的数字作为字母表的索引取得特定字符,依次进行获得6位字符串; 这样一个md5字符串可以获得4个6位串,取里面的任意一个就可作为这个长url的短url地址。 ★Dubbo负载均衡策略? 随机、轮询、最少使用、一致性哈希(除了一致性哈希外,都有加权)

redis 的过期策略都有哪些?内存淘汰机制都有哪些?

独自空忆成欢 提交于 2020-11-19 04:56:34
面试题 redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现? 面试官心理分析 如果你连这个问题都不知道,上来就懵了,回答不出来,那线上你写代码的时候,想当然的认为写进 redis 的数据就一定会存在,后面导致系统各种 bug,谁来负责? 常见的有两个问题: 往 redis 写入的数据怎么没了? 可能有同学会遇到,在生产环境的 redis 经常会丢掉一些数据,写进去了,过一会儿可能就没了。我的天,同学,你问这个问题就说明 redis 你就没用对啊。redis 是缓存,你给当存储了是吧? 啥叫缓存?用内存当缓存。内存是无限的吗,内存是很宝贵而且是有限的,磁盘是廉价而且是大量的。可能一台机器就几十个 G 的内存,但是可以有几个 T 的硬盘空间。redis 主要是基于内存来进行高性能、高并发的读写操作的。 那既然内存是有限的,比如 redis 就只能用 10G,你要是往里面写了 20G 的数据,会咋办?当然会干掉 10G 的数据,然后就保留 10G 的数据了。那干掉哪些数据?保留哪些数据?当然是干掉不常用的数据,保留常用的数据了。 数据明明过期了,怎么还占用着内存? 这是由 redis 的过期策略来决定。 面试题剖析 redis 过期策略 redis 过期策略是:定期删除+惰性删除。 所谓定期删除,指的是 redis 默认是每隔 100ms

redis的过期策略都有哪些?

不打扰是莪最后的温柔 提交于 2020-11-19 04:49:21
1、面试题 redis的过期策略都有哪些?内存淘汰机制都有哪些?手写一下LRU代码实现? 2、面试官心里分析 1)老师啊,我往redis里写的数据怎么没了? 之前有同学问过我,说我们生产环境的redis怎么经常会丢掉一些数据?写进去了,过一会儿可能就没了。我的天,同学,你问这个问题就说明redis你就没用对啊。redis是缓存,你给当存储了是吧? 啥叫缓存?用内存当缓存。内存是无限的吗,内存是很宝贵而且是有限的,磁盘是廉价而且是大量的。可能一台机器就几十个G的内存,但是可以有几个T的硬盘空间。redis主要是基于内存来进行高性能、高并发的读写操作的。 那既然内存是有限的,比如redis就只能用10个G,你要是往里面写了20个G的数据,会咋办?当然会干掉10个G的数据,然后就保留10个G的数据了。那干掉哪些数据?保留哪些数据?当然是干掉不常用的数据,保留常用的数据了。 所以说,这是缓存的一个最基本的概念,数据是会过期的,要么是你自己设置个过期时间,要么是redis自己给干掉。 2)老师,我的数据明明都过期了,怎么还占用着内存啊? 还有一种就是如果你设置好了一个过期时间,你知道redis是怎么给你弄成过期的吗?什么时候删除掉?如果你不知道,之前有个学员就问了,为啥好多数据明明应该过期了,结果发现redis内存占用还是很高?那是因为你不知道redis是怎么删除那些过期key的。

redis 3.0尝鲜

安稳与你 提交于 2020-11-19 03:54:37
1.安装redis wget http://download.redis.io/releases/redis-3.0.5.tar.gz tar zxf redis-3.0.5.tar.gz -C /export/server/ cd /export/servers/redis-3.0.5 make && make install mkdir conf;cp redis.conf conf/ 2.redis集群模式配置 2.1redis主配置文件: vim /export/servers/redis-3.0.5/conf/redis.conf daemonize yes pidfile /var/run/redis.pid tcp-backlog 511 timeout 0 tcp-keepalive 0 loglevel notice logfile "" databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir /export/data/redis slave-serve-stale-data yes slave-read-only yes repl

分布式缓存技术redis学习系列

耗尽温柔 提交于 2020-11-19 01:03:34
分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装以及操作redis问题整理 分布式缓存技术redis学习系列(二)——详细讲解redis数据结构(内存模型)以及常用命令 分布式缓存技术redis学习系列(三)——redis高级应用(主从、事务与锁、持久化) 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作) 分布式缓存技术redis学习系列(五)——spring-data-redis与JedisPool的区别、使用ShardedJedisPool与spring集成的实现及一致性哈希分析 分布式缓存技术redis学习系列(六)——sentinel哨兵机制 分布式缓存技术redis学习系列(七)——spring整合jediscluster 分布式缓存技术redis学习系列(八)——JedisCluster源码解读:集群初始化、slot(槽)的分配、值的存取 分布式缓存技术redis学习系列(九)——Redis主从实现读写分离 Jedis的Publish/Subscribe功能的使用 结合实际项目理解集群和分布式的关系 来源: oschina 链接: https://my.oschina.net/u/4316056/blog/4002586

Spring Cloud 系列之 Gateway 服务网关(四)

▼魔方 西西 提交于 2020-11-18 20:38:01
Spring Cloud 系列之 Gateway 服务网关(四) 本篇文章为系列文章,未读第一集的同学请猛戳这里: Spring Cloud 系列之 Gateway 服务网关(一) Spring Cloud 系列之 Gateway 服务网关(二) Spring Cloud 系列之 Gateway 服务网关(三) 本篇文章讲解 Gateway 网关如何实现限流、整合 Sentinel 实现限流以及高可用网关环境搭建。 网关限流 顾名思义,限流就是限制流量,就像你宽带包有 1 个 G 的流量,用完了就没了。通过限流,我们可以很好地控制系统的 QPS,从而达到保护系统的目的。 为什么需要限流 比如 Web 服务、对外 API,这种类型的服务有以下几种可能导致机器被拖垮: 用户增长过快(好事) 因为某个热点事件(微博热搜) 竞争对象爬虫 恶意的请求 这些情况都是无法预知的,不知道什么时候会有 10 倍甚至 20 倍的流量打进来,如果真碰上这种情况,扩容是根本来不及的。 从上图可以看出,对内而言:上游的 A、B 服务直接依赖了下游的基础服务 C,对于 A,B 服务都依赖的基础服务 C 这种场景,服务 A 和 B 其实处于某种竞争关系,如果服务 A 的并发阈值设置过大,当流量高峰期来临,有可能直接拖垮基础服务 C 并影响服务 B,即雪崩效应。 限流算法 点击链接观看:限流算法视频