redis学习笔记

  • 执行流程 发送命令->命令排队->命令执行->返回结果

  • string类型有三种实现方式 如果是值是int类型,那么底层用int实现,
    短的字符串使用embstr:小于等于39byte,长的用raw实现:大于39byte

  • 哈希类型实现有两种,当哈希类型的元素小于512并且size小于64byte时
    使用ziplist实现,否则使用hashtable实现

  • 列表类型也有两种实现 第一种和哈希类型一样,第二种是链表实现,3.2以后提供了quicklist来实现

  • 集合使用intset 整数集合和hashtable实现 当元素全为int并且小于512个用前者
    ###典型使用场景

string:
1.缓存功能  一般使用redis作为缓存层 mysql作为存储层
2.计数  比如视频播放量计数,访问接口统计 incr key
3.共享session
4.限速  可以通过incr+expire 自增加过期来实现hash:
可以用来复杂的用户信息list:
1.可以做消息队列 通过lpush+brpop可实现阻塞队列,生产者从lrpush插入元素,
消费者客户端使用brpop从列表尾部拿取元素
2.文章列表  因为list是有序的
lpush+lpop=stack 栈
lpush+rpop=queue 队列
lpush+ltrim=campped collection 有限集合
lpush+brpop=message queue 消息队列set:
比较典型的场景是为用户贴标签tag
sadd 用来贴标签
srandmember可以生成随机数
sadd+sinter social graph 做社交

###迁移键

1.move move命令用于在redis内部进行数据迁移 move key db
2.dump key + restore key ttl valuedump+restore可以实现不同的redis实例之间进行数据迁移1) 在源redis上 dump会将键值序列化 格式采用rdb格式2)在目标redis上 restore命令将上面序列化的值进行复原 其中ttl表示过期时间ttl=0 表示没有过期时间
3.migrate也是用于redis实例之间的数据迁移 实际就是将dump、restore和del命令进行组合

###redis持久化

redis支持rdb和aof两种持久化机制
1.rdb:rdb是将当前进程的数据生成快照保存到硬盘的过程,触发rdb持久化有手动触发和自动触发。手动触发分别对应sava和bgsava,前者会阻塞当前服务器,直到rdb完成 一般不使用bgsava会fork出一个子进程  rdb由子进程来完成 自动触发1)进行sava设置 sava m n 表示m秒内数据在n次修改自动触发bgsava2)在节点复制的时候回进行bgsava生成rdb文件并发送给从节点3)执行debug reload命令重载redis时也会触发sava操作4)默认情况下执行shutdown命令  如果没有开启AOF持久化则会自动执行bgsava
2.aof:aof持久化是以独立日志的方式记录每一次写命令,重启时再执行aof文件的命令达到恢复数据的作用。开启aof需要在配置文件中打开appendonly yes,默认文件名称appenonly.aof随着aof文件的变大,redis引入文件重写机制来压缩文件体积,也就是把redis进程内的数据转化为写命令同步到新的aof文件中新的aof文件之所以会变下,主要是因为旧的aof文件一些命令,比如del key1 、del key2 等无效的命令不会在保存然后还会将多条命令合并为一条命令 如:lpush list a、lpush list b等转化为lpush list a bAOF重写过程也分为手动和自动触发  手动bgrewriteaof命令 自动需要在配置文件配置

redis开发与运维笔记相关推荐

  1. Redis开发与运维笔记_1 初识2 API

    目录 概述 第1章 初识Redis 1.1 盛赞Redis 1.2 Redis特性 1.3 配置.启动.操作.关闭Redis 第2章 API的理解和使用 2.1 预备 2.1.1 全局命令 2.1.2 ...

  2. Redis开发与运维 必备-电子书

    Redis开发与运维电子书 fulei出版 链接: https://pan.baidu.com/s/12rlHhOKP7_72GE8a74lN1g 密码: eep2 复制这段内容后打开百度网盘手机Ap ...

  3. <Redis开发与运维>一书阅读笔记记录

    文章目录 前言 第1章:初始redis 盛赞redis redis特性 redis使用场景 第2章:API的理解和使用 预备知识 全局命令 数据结构和内部编码 单线程架构 字符串 命令 内部编码 典型 ...

  4. 「Redis开发与运维」读书笔记

    第一章 初识Redis Redis的8个重要特性 速度快 内存存储数据 C语言实现 单线程架构,避免多线程竞争问题 Redis源码优化好 基于键值对的数据结构服务器 Redis 值可支持多种数据结构, ...

  5. 读书笔记:redis开发与运维 基础篇

     redis特性    1>速度快:redis所有数据都是存放在内存中,是redis速度快的主要原因,是有c编写,一般来说用c编写的程序距离操作系统近,执行速度更快,非阻塞I/O,使用epoll ...

  6. 【Redis】《Redis 开发与运维》笔记-Chapter12-开发运维的“ 陷阱”

    十二.开发运维的" 陷阱" 1.Linux配置优化之内存分配控制 1)vm.overcommit_memory Linux操作系统对大部分申请内存的请求都回复yes,以便能运行更多 ...

  7. 《Redis开发与运维》读书笔记--初识Redis(一)

    目录 盛赞Redis Redis特性 redis使用场景 redis可以做什么? redis不可以做什么? 关于用好redis的两点建议 本章重点回顾 写在前面: 想必在写项目的过程中,我们很多时候都 ...

  8. Redis 开发与运维

    Getting Start 高性能 性能优势的体现 C语言实现的内存管理 epoll的I/O多路复用技术+IO连接/关闭/读写通过事件实现异步的非阻塞IO TCP协议 单线程架构,不会因为高并发对服务 ...

  9. Redis理解内存《Redis开发与运维读书笔记》

    文章目录 内存的消耗 内存划分 内存管理 内存优化 内存的消耗 可以使用info memory 查看内存消耗. 内存划分 对象内存 = sizeof(key) + sizeof(value) 应避免使 ...

  10. 《Redis开发与运维》各章重点回顾

    第 1 章 初识 Redis Redis 8个特性:速度快.基于键值对的数据结构服务器.功能丰富.简单稳定.客户端语言多.持久化.主从复制.支持高可用和分布式. Redis 不是万金油,有些场景不适合 ...

最新文章

  1. Ubuntu 下配置 SSH服务全过程及问题解决
  2. MongoDB:利用官方驱动改装为EF代码风格的MongoDB.Repository框架 五 --- 为ListMongoDBRef增加扩展方法...
  3. 【数据结构】C语言栈的基本操作
  4. java creat uid_关于uniqueidentifier:如何在Java中创建唯一ID?
  5. 体验MySQL MMM
  6. CentOS 初体验二: 切换语言,连接互联网
  7. C#:对txt文件的读写
  8. shell看java控制台_java - 为什么我的shell脚本的输出不能打印在控制台? - SO中文参考 - www.soinside.com...
  9. 多迪技术总监揭秘:PHP为什么是世界上最好的语言?
  10. 【Python】list和tuple 区别比较
  11. python代码封装加密_静态编译python源代码,使用Nuitka加密你的py源码
  12. Python实现小球游戏
  13. Python io – BytesIO,StringIO
  14. Win10硬盘安装器(WinNTSetup 64位) v3.9.4 中文绿色版
  15. 如何查询GPU卡每个block支持的最大thread(线程)数
  16. 百度内部发文:砥砺风雨坚守使命的背后
  17. 色环电阻的电阻值大小的确定
  18. 解决 ZLibrary 登录/注册不了的问题
  19. anacnda 子环境管理
  20. 关于旅游景点主题的HTML网页设计——青岛民俗 7页 带登录注册

热门文章

  1. z17刷miui_努比亚Z17刷机包
  2. illegal instruction 解决办法
  3. python webdriver 从无到有搭建混合驱动自动化测试框架的过程和总结
  4. 黑盒测试方法之等价类划分
  5. 小程序“成语猜题”部分答案,总共28667题
  6. 小米随身wifi没有网络显示无服务器,小米随身wifi创建失败如何解决_小米随身wifi网络创建失败的解决教程...
  7. JXNU Linux 学习通单元测试题 和 答案
  8. 【转载】RPG或SLG游戏在线地图编辑器
  9. Mac WebStorm 破解
  10. 使用 Pandas 与 Matplotlib 分析科比职业生涯数据-CSDN公开课-专题视频课程