【七天玩转Redis实战营】答疑汇总Day2 Redis开发实操之春运迁徙页面

【第二讲,Redis开发实操之春运迁徙页面

讲师:阿里云NoSQL内核工程师;Redis Committer,Jedis Reviewer,凡澈

课程内容:如何使用Redis:一般性Redis启动到连接;云redis从开通到连接(创建,白名单,客户端连接);使用Redis Hash,Sorted Set,Stream等结构实现一个春运迁徙页面

答疑汇总:特感谢班委@邱谦 同学


【七天玩转Redis实战营】答疑汇总Day2 Redis开发实操之春运迁徙页面


Q1. Tarigis是什么数据结构?是阿里云开发的吗?

 

Redis企业版的Module支持的功能,底层是基于stream,可以做更多点、线、面之间的判断关系。在今天的例子中,判断路径有没有经过疫区就是通过线面之间有没有相交。TairGIS的详细介绍,可看这里https://help.aliyun.com/document_detail/145971.html Tarigis是由阿里云开发的。

 

Q2. RedisTemplate获取了哈希数据后,keyRedis中不存在,但是获取到的对象是空对象是怎么回事?

 

RedisTemplate使用过程中,要注意关于对象的序列化和反序列化的设置。

 

Q3.Tarigis的开源版是如何实现的?

 

Redis本身的GEO的实现。使用GEO HASH的原理,对各个地区的经纬度做了不断区分。TarigisRedisGEO不一样的是底层的数据结构是R tree,可以对它做索引,也可以做点线面相交的判断。

 

Q4.点面关系和线面关系之间的线面复杂度如何?

 

复杂度分为最好和最坏。R tree的复杂度,要考虑整个R tree上节点的维度,以及每个面的维度。

 

Q5.云数据库添加不同权限的功能是Redis原生的功能还是阿里云开发的?

 

云上的账户体系是由阿里云进行的二次开发。

 

Q6.一次要获取上百个key,累积起来耗时比较长,有没有什么更好的方案?

 

key不多的话,问题也不大。一次业务请求中key比较多的时候,建议把key分在不同的机器上,这样可以整体减少返回的时间,因为可以并发地执行。我们在后面的课程中也会提到如何优化key地设计。

 

Q7. Redis5.0的社区版支持Tarigis的功能吗?

 

不支持。支持企业版数据结构的Redis只有企业版Redis

 

Q8.Password默认的用户名是什么?

 

默认的用户名是用户的实例ID

 

Q9.Redis和服务器自己安装的的Redis有什么区别?

 

Redis本身在运维方面由比较多问题与坑,对于整个资源和管理,云Redis在安全和弹性上都有更大的优势。在阿里云Redis的官方文档上也有云Redis和服务器安装的Redis由详细的比较。

 

Q10.Redis缓存的数据在开启AOF后,最多丢失1秒钟?事实上也是这样吗?

 

Redis在AOF的配置策略。最极端情况下可以配置每次刷新,大多数时候都是配置1秒刷新一次。1秒刷新是调用fsync,数据会经过一系列流程处理和配置。配置everysec策略,按照官方文档的描述,最多丢失1秒的数据。


但实际上如果发生AOF加塞,修改命令添加到aof_buf之后,如果配置是everysec那么会每秒执行fsync操作,调用write写入磁盘一次。如果硬盘负载过高,fsync操作可能会超过1s,此时Redis会采取延迟fsync的策略,将会再等待1秒,也就是2秒后再进行fsync,这一次的fync不管执行多长时间都会进行。主线程阻塞直到fsync同步完成,所以最多可能丢失2s的数据,而不是1s。

 

Q11.云上的Redis是不是有大key监控?

 

有,云上Redis可以通过缓存分析来分析key,还有大key监控功能正在开发,后续会尽快上线。

上一篇:【七天玩转Redis实战营】答疑汇总Day6 Redis的高并发实战:抢购系统


下一篇:zabbix升级报警之自定义脚本