Redis

Java 高级 面试题 及 参考答案

£可爱£侵袭症+ 提交于 2020-08-17 19:14:05
一、面试题基础总结 1、 JVM结构原理、GC工作机制详解 答:具体参照: JVM结构、GC工作机制详解 ,说到GC,记住两点:1、GC是负责回收所有无任何引用对象的内存空间。 注意:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,2、GC回收机制的两种算法,a、引用计数法 b、可达性分析算法( 这里的可达性,大家可以看基础2 Java对象的什么周期),至于更详细的GC算法介绍,大家可以参考: Java GC机制算法 2、Java对象的生命周期 答:创建阶段 、 应用阶段 、不可见阶段 、不可达阶段 、收集阶段 、终结阶段、 对象空间重新分配阶段等等,具体参照: Java 对象的生命周期 3、Map或者HashMap的存储原理 答:HashMap是由数组+链表的一个结构组成,具体参照: HashMap的实现原理 4、当数据表中A、B字段做了组合索引,那么单独使用A或单独使用B会有索引效果吗?(使用like查询如何有索引效果) 答:看A、B两字段做组合索引的时候,谁在前面,谁在后面,如果A在前,那么单独使用A会有索引效果,单独使用B则没有,反之亦然。同理,使用like模糊查询时,如果只是使用前面%,那么有索引效果,如果使用双%号匹配,那么则无索引效果 5、数据库存储日期格式时,如何考虑时区转换问题? 答:使用TimeStamp , 原因参照:

揭秘阿里云Redis 6.0极速上云:内核能力与云原生管控

自闭症网瘾萝莉.ら 提交于 2020-08-17 19:08:26
Redis 6.0更多精彩详情 Redis 6.0是Redis发展史上极为重要的版本,包含多项重大功能更新和大幅度的性能提升。为了让用户可以第一时间体验到最新版Redis的各项功能,阿里云紧随其后发布了最新版 Redis 6.0云数据库。在昨天的发布会中,云数据库 Redis 6.0版本 正式与大家见面。 今天小编就为大家揭秘一下云数据库Redis极速上云背后的故事。 2020年5月2日,Redis 6.0 GA版正式发布,这个版本被作者誉为社区版史上最大的一次发布,包含诸如 RESP3新协议支持、ACL 管理、多 IO 线程、SSL 加密、客户端缓存与集群代理等多项重大关键功能更新和内核架构提升。 2020年5月7日,阿里云全球首发(除原厂)最新版 Redis 6.0云数据库 ,全面涵盖开源Redis 6.0各项功能。 短短不到一周的时间,阿里 来源: oschina 链接: https://my.oschina.net/u/4285472/blog/4327469

华为云 GaussDB 数据库,会是新的国产之光吗?

孤者浪人 提交于 2020-08-17 18:19:05
华为云数据库业务总裁苏光牛 7月20日,华为云TechWave技术峰会上,华为云数据库业务总裁苏光牛正式发布两大数据库新品,包括关系型数据库GaussDB(for MySQL)和非关系型数据库GaussDB NoSQL系列。 仅半个月后,GaussDB又迎来了新一轮更新。在华为云TechWave·数据库专题日上,华为云数据库业务总裁苏光牛详细介绍了GaussDB这个华为的战略性数据库产品的来历,并发表了他对于数据库发展的一些看法。 GaussDB数据库升级下的大调整 苏光牛谈到,在宣布战略性调整之前,外界还有人在质疑,华为在做数据库的态度上并不坚定,GaussDB算不上是华为的战略性产品。本次发布后,这种质疑很快被打消。 其实这从华为对数据库的战略性投入可以看出,比如数据库专业人才的投入和高端专家布局,数据库是人才专家密集型高门槛基础研究,华为有1000+数据库研发专业人才,还有100+布局全球7大区域的数据库内核引擎、算法等高级专家和大咖,这只是数据库的研发人员,并不包含内部为华为云/流程IT/消费者云等数据库底座服务的DBA、SRE运维人员、工具平台开发人员,还有华为云数据库的销售、交付与服务人员;比如数据库研发历史和标杆客户的选择,华为从2007年开始已经持续战略投入数据库超过10年,早在2014年开始就持续和工商银行、招行等头部标杆客户长期联创

重磅!!Redis 6.0.0 已发布,有史以来改变最大的版本

落爺英雄遲暮 提交于 2020-08-17 18:13:39
Redis 作者在博客正式宣布 Redis 6.0 发布了!!!地址: http://antirez.com/news/132 Redis 6是有史以来改变最大的 Redis 版本,因此即使稳定,也要小心处理,并在投入生产之前对其进行测试,以进行工作量测试。 到目前为止,我们从未发现重大问题,但请务必小心。在收集错误报告时,我们将准备尽快发布 Redis 6.0.1。 GA 版本除了比 RC1 更稳定,还对部分功能进行了重新设计或是进一步的改进。 对客户端缓存某方面的功能进行了重新设计,主要是放弃了“缓存插槽”(caching slot)改为使用键名(key name)。另外还新增了“广播模式”(broadcasting mode),当使用广播模式时,服务器不需要记住每个客户端请求的 key。相反,客户端会订阅 key 的前缀:每当有匹配前缀的 key 被修改时,客户端就会收到通知。 用于主从复制的 RDB 文件如果不再使用会被删除 新的 ACL LOG 命令,可查看不遵循 ACL 权限的客户端(例如访问了无权限的命令和 key,以及验证失败),主要用于调试 ACL 问题。此外还有重新实现的 ACL GENPASS,它使用了基于 SHA256 的 HMAC 加密算法。 改进 PSYNC2 主从复制协议 改进 Redis 命令行的超时选项 提升 RDB 文件的加载速度(~20/30%

java技术遇到瓶颈?不慌,这份java全体系脑图与面试题集合可助你冲上云巅

牧云@^-^@ 提交于 2020-08-17 18:05:05
所谓并发编程是指在一台处理器上“同时”处理多个任务。 并发是在同一实体上的多个事件。 多个事件在同一时间间隔发生,编写优质的并发代码是一件难度极高的事情。 Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的. 但是当我们对并发编程有了更深刻的认识和更多的实践后. 实现并发编程就有了更多的方案和更好的选择,并发编程的目标是充分的利用处理器的每一个核. 以达到最高的处理性能. 并发编程路线脑图 并发编程面试题汇集: Synchronized用过吗 ,其原理是什么 ? 什么是可重入性,为什么说 Synchronized是可重入锁 ? JVM对Java的原生锁做了哪些优化 ? 那么请谈谈AQS框架是怎么回事儿 ? 请尽可能详 尽地对比下Synchronized和ReentrantLock的异同 。 什么是原子操作,Java 中的原子操作是什么? 创建线程池的几个核心构造参数 ? 什么是Java的内存模型,Java中各个线程是怎么彼此看到对方的变量的 ? 在Java中CycliBarriar和CountdownLatch有什么区别? 请谈谈ThreadLocal是怎么解决并发安全的 ? 文末底下有面试题汇集以及学习全脑图 曾经我也对 JVM 感到很头痛,完全搞不懂应该如何入门 JVM 的学习。 但经过了几年的学习,我对 JVM 有了更深入的理解。

snowflake时间回退问题思考

我是研究僧i 提交于 2020-08-17 18:04:49
算法比较简单,每个id-generator负责生成的ID由3部分组成,41位时间戳可以表示到毫秒,10bit worker-id内部可自行划分,比如3位表示IDC,7位表示机器。最后12位是在一毫秒的递增id,也就是每毫秒算法可以产生2^12 = 4096个id,QPS 400多万; snowflake保证1)产生的id分布式系统内全局唯一,2)id趋势递增;不是严格递增,因为集群的机器时间不同步问题 该算法存在一个最严重的问题,是时间回退。比如一台机器A,在t产生一个id,但时钟被调回了t-15,则再次生成的id存在重复的可能。 思考了一个解决这个问题的方法, 在单一id-generator服务上,每ms生成id时,检测current_ms,或<= last_ms则等待last_ms-current_ms后,再开始正常服务。这样若id-generator重启后依然有问题,因为没有地方记录last_ms。并且因为400w的高qps,也无法将其持久化。 我们引入一个第3方,如zookeeper或redis,id-generator服务启动时atomic increase一个key,并将结果用作worker-id。。。 oops!貌似不行,只支持重启1024次 来源: oschina 链接: https://my.oschina.net/u/4367530/blog/4280303

大前端已完结

て烟熏妆下的殇ゞ 提交于 2020-08-17 17:53:08
大前端已完结 【超清原画完整无密】 下载地址 【百度云盘】 比前端全栈更上一层 专为实际开发经验1年以上的前端工程师设计 高效全能架构前端 章节目录: 第一阶段 第二阶段 第三阶段 第四阶段 第五阶段 第一阶段:开启大前端之门(1-4周) 第1周 认识大前端,开启无限可能 万丈高楼平地起。开课第一周,我们将以轻松幽默的方式,从实际工作中的开发痛点出发,以项目全生命周期为主线,对全栈有全局的认识。从整体项目分析开始,培养您的项目架构思维。 课程安排: 1. 了解大前端知识体系,让您有全局的认知 2. 理解大前端的定义,让您不再迷茫 3. 项目规划及DevOps流程 4. 分析实际工作中遇到的痛点以及解决办法 5. 掌握需求分析的要点及工具(墨刀/Axure) 6. 从原型设计、接口设计到技术栈的宏观项目架构思维 第2周 企业标准的开发环境搭建 工欲善其事,必先利其器。学习最火的Docker容器技术,快速搭建测试环境。深入讲解前端必会的Mock接口与工具,并专门设计了调试技巧&真机调试讲解,与实际工作开发完美契合。 课程安排: 1. 虚拟机搭建与使用 2. Linux开发环境及常见命令使用 3. 容器技术Docker以及安装及使用 4. Node及npm命令的使用 5. 搭建DOClever接口测试平台 6. 前后端分离开发--RESTful接口及Mock数据 7.

super-graph 配置

女生的网名这么多〃 提交于 2020-08-17 16:37:58
super-graph 的配置可以通过yaml 以及json格式,同时提供了基于环境变量的管理(以 GO_ENV 开头) 比如 GP_ENV=prod 使用prod.yaml 对于 GO_ENV-dev 的使用 dev.yaml ,配置文件也可以通过 -path <folder> 指定 完整配置 参考配置文件 # Inherit config from this other config file # so I only need to overwrite some values inherits: base app_name: "Super Graph Development" host_port: 0.0.0.0: 8080 web_ui: true # debug, error, warn, info log_level: "debug" # enable or disable http compression (uses gzip) http_compress: true # When production mode is 'true' only queries # from the allow list are permitted. # When it's 'false' all queries are saved to the # the allow list in .

NoSQL之一:Memcached

别说谁变了你拦得住时间么 提交于 2020-08-17 16:26:46
一、NoSQL简介 NoSQL并不是No SQL(不再需要SQL),而是指Not Only SQL(不仅仅只有SQL)。NoSQL并不是用来替代关系型数据库的,而是在某些使用关系型数据库不合适的场景中,可以使用NoSQL数据库进行优化,而在系统中主要的、常规的数据仍然使用关系型数据库。   常用的NoSQL数据库有Memcached、Redis、MongoDB等,其中前两者属于键值对数据库,后者属于文档数据库。它们都有各自的优缺点以及使用场景。 二、Memcached介绍与安装 Memcached是一个专门用来做缓存的数据库,缓存的数据都是在内存当中,当数据库重启之后,数据也就都丢失了。其相当于一个Dictionary键值对集合,根据Key值取Value值。   1、Memcached安装    从网上下载Memcached-win64-1.4.4-14.zip安装包。解压后,通过管理员权限执行如下命令,可将其安装成服务: G:\MemcachedAfterInstall>memcached.exe -d install   2、Memcached可视化工具     TreeNMS是一款Redis、Memcached可视化客户端工具,实现基于Web方式对Redis、Memcached数据库进行管理、维护。可通过如下链接 http://www.treesoft.cn/dms.html