这样学Redis,才能技高一筹

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 【7月更文挑战第18天】

“两大维度”就是指系统维度和应用维度,“三大主线”也就是指高性能、高可靠和高可扩展(可以简称为“三高”)。

首先,从系统维度上说,你需要了解 Redis 的各项关键技术的设计原理,这些能够为你判断和推理问题打下坚实的基础,而且,你还能从中掌握一些优雅的系统设计规范,例如 run-to-complete 模型、epoll 网络模型,这些可以应用到你后续的系统开发实践中。

  1. 高性能主线,包括线程模型、数据结构、持久化、网络框架;

    1. 高可靠主线,包括主从复制、哨兵机制;
    2. 高可扩展主线,包括数据分片、负载均衡

    在应用维度上,我建议你按照两种方式学习: “应用场景驱动”和“典型案例驱动”,一个是“面”的梳理,一个是“点”的掌握

    如果我们想要深入理解和优化 Redis,就必须要对它的总体架构和关键模块有一个全局的认知,然后再深入到具体的技术点

    对于键值数据库而言,基本的数据模型是 key-value 模型

    在 SimpleKV 中,key 是 String 类型,而 value 是基本数据类型,例如 String、整型等

    我们在对键值数据库进行选型时,一个重要的考虑因素是它支持的 value 类型。例如,Memcached 支持的 value 类型仅为 String 类型,而 Redis 支持的 value 类型包括了 String、哈希表、列表、集合等。

    从使用的角度来说,不同 value 类型的实现,不仅可以支撑不同业务的数据需求,而且也隐含着不同数据结构在性能、空间效率等方面的差异,从而导致不同的 value 操作之间存在着差异

  2. PUT:新写入或更新一个 key-value 对;

    1. GET:根据一个 key 读取相应的 value 值;
    2. DELETE:根据一个 key 删除整个 key-value 对

    有些键值数据库的新写 / 更新操作叫 SET。新写入和更新虽然是用一个操作接口,但在实际执行时,会根据 key 是否存在而执行相应的新写或更新流程。

    查询一个用户在一段时间内的访问记录

    因此,PUT/GET/DELETE/SCAN 是一个键值数据库的基本操作集合

    可以增加 EXISTS 操作接口,用于判断某个 key 是否存在

    键值对保存在内存还是外存?

    内存 好处是读写很快,毕竟内存的访问速度一般都在百 ns 级别, 潜在的风险是一旦掉电,所有的数据都会丢失
    外存 可以避免数据丢失,受限于磁盘的慢速读写(通常在几 ms 级别),键值数据库的整体性能会被拉低
    需要考虑键值数据库的主要应用场景。缓存场景下的数据需要能快速访问但允许丢失,那么,用于此场景的键值数据库通常采用内存保存键值数据

相关实践学习
基于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
目录
相关文章
|
4月前
|
缓存 NoSQL Redis
Redis雪崩问题
Redis雪崩问题
51 1
|
12月前
|
JSON NoSQL Redis
|
1月前
|
缓存 NoSQL Redis
说说你对redis的理解2
说说你对redis的理解2
30 6
|
运维 NoSQL Shell
redis(2)
Redis Cluster 是 redis的分布式解决方案,在3.0版本正式推出 当遇到单机、内存、并发、流量等瓶颈时,可以采用Cluster架构方案达到负载均衡目的。 Redis Cluster之前的分布式方案有两种: 1)客户端分区方案: 优点分区逻辑可控,缺点是需要自己处理数据路由,高可用和故障转移等。 2)代理方案: 优点是简化客户端分布式逻辑和升级维护便利,缺点加重架构部署和性能消耗。 官方提供的 Redis Cluster集群方案,很好的解决了集群方面的问题
|
存储 NoSQL Java
Redis3
Redis3
47 0
|
11月前
|
存储 NoSQL Linux
Redis之Redis为什么这么快解读
Redis之Redis为什么这么快解读
|
12月前
|
NoSQL Redis
|
12月前
|
监控 NoSQL Java
|
12月前
|
存储 缓存 NoSQL