redis学习之一

redis学习之一

黄鹏宇 411 2021-11-28

第一部分 数据结构与应用

第1节 字符串

简单的

  • SET key value [ NX | XX ]

NX只能给空键赋值
XX只能覆盖值

  • GET
  • GETSET : 获取旧值并赋新值
  • MSET : 为多个字符串设置值
  • MGET : 获取多个字符串
  • MSETNX : 键不存在的情况下,为多个键赋值
  • STRLEN : 字符串值的长度
  • GETRANGE : 获取指定范围的字符串
  • SETRANGE : 对指定范围赋值 闭区间
  • APPEND : 在末尾追加新内容

如果键空,则创建并赋值

  • INCRBY | DECRBY Key Value : 加Value
  • INCR | DECR

第2节 散列

  • HSET hash field value
  • HSETNX
  • HGET
  • HEXISTS : 检查字段是否存在
  • HDEL : 删除字段
  • HLEN : 散列包含的字段数量
  • HMSET : 一次为多个字段设置值
  • HMGET : 一次获取多个字段
127.0.0.1:6379> HMSET blog a 1 b 2 c 3
OK
127.0.0.1:6379> HMGET blog a b c
1) "1"
2) "2"
3) "3"
  • HKEYS | HVALS | HGETALL : 获取所有字段、值、字段和值

demo 短链生成器

第3节 列表

  • 阻塞式操作 P119

第4节 集合

第5节 有序集合

第6节 HyperLogLog

  • 一个概率算法,可以对大量元素计数
  • 使用固定内存
  • 可以对多个HyperLogLog取并集

第7节 位图

第8节 地理坐标

第9节 流

第二部分 附加功能

第1节 数据库

第2节 自动过期

  • 使用该功能可以做缓存刷新
  • 排行榜

第3节 流水线与事物

  • 流水线: 一次执行多条命令

第4节 Lua脚本

第5节 持久化

1. 分类

  • RDB持久化
  • AOF持久化
  • RDB-AOF混合持久化

2. RDB持久化

是redis默认使用的持久化功能,会创建出一个rdb文件,可以手动创建,也可以定时执行。

2.1 命令
2.1.1 阻塞式备份

SAVE 如果已有rdb文件,则新文件会覆盖旧文件。 O(N)

2.1.2 非阻塞式

BGSAVE 创建子进程进行备份。O(N)

2.1.3 自动备份

写在redis.conf里
save <seconds> <changes>
如果服务器在seconds内,执行了changes次修改,则自动进行一次BGSAVE命令。
可以多个save命令共存

2.1.4 载入备份

当redis启动时,会在工作目录查找rdb文件,然后自动载入。

2.2 弊端

3. AOF持久化

4. RDB-AOF混合持久化

第6节 发布与订阅

第7节 模块

第三部分

第1节 复制

第2节 Sentinel

第3节 集群