美文网首页
Redis 学习笔记2 - 基础知识

Redis 学习笔记2 - 基础知识

作者: 张云飞Vir | 来源:发表于2020-03-29 23:44 被阅读0次

    1. 基础知识

    Redis 通常被描述为一个“键值对”方式的存储的内存型数据库。然而它不仅仅如此,它也可以把数据写到硬盘上用以持久化。

    在 Redis 提供的五种不同的数据结构中,典型的是键值对结构。深刻理解这五种数据结构,它们的工作原理,它们提供的方法,以及怎样用这些数据结构去建模,是学习理解 Redis 的关键。 首先要弄明白这些数据结构的具体含义。

    1.1 数据库(Databases)

    Redis也有数据库的概念,数据库是包含一组数据的集合。

    在 Redis 中,通过一个数字来标识数据库,默认开始标识是 0。
    如果你想切换到不同的数据库,你可以通过使用 select 命令。输入 select 1。Redis 会响应一个 OK 。

    127.0.0.1:6379> select 1
    OK
    127.0.0.1:6379[1]> select 0
    OK
    127.0.0.1:6379> 
    

    1.2 命令字,键和值(Commands, Keys and Values)

    Redis 不单是一个键值对存储,其核心的五种数据结构至少都有一个 key 和一个 value。理解 key 和 value 是非常重要的。

    Key 定义了如何标识数据块。
    Values 表示 key指向的 实际数据。Values 可以是任何类型,可以存储字符串,整数,或序列化对象(比如 JSON, XML )。

    key 是看起来应该有像 users:leto 这样的格式,这样的一个 key 一看就知道这条数据中有一个叫 leto 的用户的相关信息。冒号没什么意义,用符号分隔 key 是一般常用方式。

    先看个例子:

      set users:leto '{"name": "leto", "planet": "dune", "likes": ["spice"]}'
    

    set 是 命令字。然后是它的参数,一个key是 “users:leto ”,再后面是它的值。
    set 可以理解为:设置,存储,写入。这里就是 将 users:leto 和后面的值关联起来,将来可以通过 这个key (即 users:leto ) 来读取到这个值。

    那么,怎么读取呢?

    get users:leto
    

    get 是命令字,执行后会显示 users:leto 这个key 对应的 值。

    1.3 查询(Querying)

    对 Redis 来说,key 是全部,而 value 无所谓。或者,换个说法,Redis 不允许你直接查询对象的值,只能通过 key 去查找。
    value 可以是任何类型 - Redis 根本不需要去理解他们。

    基于此,我们来理解 Redis ,考虑它是否适合我们的数据建模,和它所适用的场景。

    1.4 内存和持久化(Memory and Persistence)

    1.快照
    Redis 基于一定量 key 的变更,来触发对数据库进行快照,保存到硬盘上。默认情况下,Redis 会在每 60 秒,如果有 1000 及以上个 key 发生改变,将对数据快照保存。或每15分钟,即使少于9个 key 发生改变,也会把数据快照保存。

    2.增量
    Redis 支持增量模式。一旦 key 发生变化,一个增量包会更新到硬盘上。某些情况下,允许数据60秒的更新延迟,用以换取性能上的提升,是值得的,虽然有可能会发生硬件或软件异常,导致数据丢失。

    3.将持久化任务分流到从服务器上
    一种可选方案

    1.5 总结

    由于是内存型存储,所以,它会很快。
    数据保存的方式是非实时的,确保具有更好的性能。
    Redis 的 闪光点是它特别的数据结构。

    由于 Redis 很快,我们无需慎重的考虑和它的交互次数,对于可以获得的高性能,多次查询的损失微不足道。

    END

    相关文章

      网友评论

          本文标题:Redis 学习笔记2 - 基础知识

          本文链接:https://www.haomeiwen.com/subject/nvhpuhtx.html