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

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 Tair(兼容Redis),内存型 2GB
简介: 【第二讲,Redis开发实操之春运迁徙页面】讲师:阿里云NoSQL内核工程师;Redis Committer,Jedis Reviewer,凡澈课程内容:如何使用Redis:一般性Redis启动到连接;云redis从开通到连接(创建,白名单,客户端连接);使用Redis Hash,Sorted Set,Stream等结构实现一个春运迁徙页面答疑汇总:特感谢班委@邱谦 同学

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

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

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

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


Dingtalk_20210317105006.jpg


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

 

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

 

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实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
10天前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
16 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
6天前
|
NoSQL API Redis
如何使用 C++ 开发 Redis 模块
如何使用 C++ 开发 Redis 模块
|
2月前
|
NoSQL Redis 容器
【Azure Cache for Redis】Redis的导出页面无法配置Storage SAS时通过az cli来完成
【Azure Cache for Redis】Redis的导出页面无法配置Storage SAS时通过az cli来完成
|
3月前
|
编解码 NoSQL Redis
c++开发redis module问题之想实现Redis命令,如何解决
c++开发redis module问题之想实现Redis命令,如何解决
|
3月前
|
NoSQL Java 编译器
c++开发redis module问题之保证Redis在fork时没有处于inflight状态的命令,如何解决
c++开发redis module问题之保证Redis在fork时没有处于inflight状态的命令,如何解决
|
3月前
|
运维 NoSQL Redis
c++开发redis module问题之module根据Redis的角色采取不同的行为,如何解决
c++开发redis module问题之module根据Redis的角色采取不同的行为,如何解决
|
3月前
|
NoSQL Redis C++
c++开发redis module问题之对于写命令,进行主备复制和写AOF,如何解决
c++开发redis module问题之对于写命令,进行主备复制和写AOF,如何解决
|
3月前
|
NoSQL Linux Redis
c++开发redis module问题之避免在fork后子进程中发生死锁,如何解决
c++开发redis module问题之避免在fork后子进程中发生死锁,如何解决
|
17天前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(一)
数据的存储--Redis缓存存储(一)
53 1
|
17天前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
33 2
数据的存储--Redis缓存存储(二)

相关产品

  • 云数据库 Tair(兼容 Redis)