初学者学习redis最应该了解的东西

19 阅读2分钟

1:五大类型和简单的数据结构

  • String 简单动态数组.

  • List 链表形成压缩链表(ziplist) 多个压缩链表形成快速链表 (quickList).

  • Set hash类型 原理和JAVAHashMap是一样 每个元素作为key,所有的value指向同一个值.

  • hash hash.

  • Zset 跳表.

  • 什么是事务 Redis在执行命令时,原子性表现在执行单条命令,不会被打断. 但是不保证一个客户端的命令在执行时,不会被其他 客户端的命令打断. Redis的事务就是控制,执行一个客户端的多个命令时,不会被其他客户端的命令插队.

    • 怎么控制事务

    • 将多个命令放入一个队列中,统一执行

    • 分为组队阶段和执行阶段

    • multi 开始组队

    • exec 执行对象

    • discard 取消组队

    • 组队期间报错, 执行失败

    • 组队成功,执行出错,继续执行,不会停止

4.事务的特点

  • 只是防止插队,不保证原子性
  • 没有提交,也没有回滚
  • 没有ACID

5.- Redis事务锁

-   Redis锁机制是乐观锁
-   悲观锁 悲观的认为数据的安全问题一直存在,上锁后,只有当前线程操作数据,其他线程等待 多个读取线程是应该同时进行,但是悲观锁仍然让其他线程等待

-   乐观锁 乐观的认为数据的安全问题几乎不存在,上锁后,也不是真正的锁定数据,是记录数据的状态(版本号) , 只有真正执行的时候,会校验数据还是不是当时的状态(版本号) 如果是,则执行,如果不是,则放弃执行, 多个读取操作应该同时进行,乐观锁允许让这些操作同时执行 效率比较高


以上是笔者在学习redis时整理的redis中核心的内容.