福州大学苏立超老师《大数据库系统》第三章复习提纲“redis”

第三章(考点:3.3-3.7 数据类型与操作(会写会熟练使用) 消息订阅 持久化 主从复制 运维和哨兵怎么配,作用)

一.通用命令

  1. 设置set key value 查询 keys key(*)
    支持模糊查询 *任意多个字符;[]括号内某个字符;?单个字符
  2. randomkey 随机key
  3. exists key判断是否存在
  4. type key 返回类型
  5. del key
  6. rename key newname
  7. select dbnum 切换到指定的数据库(默认0号)
  8. move key db 将当前数据库的key移到指定数据库
  9. ttl key 查询key的生命周期(-2即是不存在)s单位,pttl毫秒
  10. expire key 设置key的生命周期,s单位,pexpire毫秒
  11. persist key 设置key永久有效

二.STRING

  1. mset key value key value一次性设置多个键值
  2. mget key key key 一次性返回多个key的值
  3. setrange set key offset value2 把key的value的第offset位置换位value2
  4. append key value 将value追加到key的value的末尾
  5. getrange key start end 字符串截取
  6. getset key value 将给定keyu的值设置为value并返回key的旧值
  7. strlen key 获取字符串长度
  8. incr key 数字加1 decr key 数字减1
  9. incrby key num 数字加n decrby key num 数字减n
  10. setbit key offser value 设置offset对应二进制位的值
  11. getbit key offset 获取值的二进制表示
  12. bittop operation destkey key对字符串key进行位元运算,结果保存至destkey,其中operation是位元操作符

三.LIST

  1. lpush,rpush list value,将值插入列表的头部/尾部,返回当前列表长度
  2. lrange list start end 获取列表指定闭区间内的元素
  3. lpop/rpop list 删除并返回列表的头/尾元素
  4. lrem list count value 删除指定count个数的与value值相等的元素(count=0删除所有,<0从表尾开始搜索)
  5. ltrim list start end 修建闭区间的元素重新赋值给list
  6. lindex list index 获取列表中下标为index的元素
  7. list list index value 设置下标index的元素值为value
  8. llen list 统计列表的长度
  9. linsert list before/after pivot value 将value插入列表pivot前/后
  10. rpoplpush list1 list2 弹出list1中的尾元素并插入list2的头部
  11. blpop/brpop list timeout 指定时间内删除列表的头/尾元素

四.SET(无序集合,不存在重复元素)

  1. sadd set member 将元素添加到set
  2. smembsers set 查看所有元素
  3. srem set member 删除元素
  4. spop set count 随机删除set中的count个数元素
  5. srandmember set 随机返回一个元素
  6. sismember set member 判断member是否在set中
  7. scard set 获取set元素数量
  8. smove set1 set2 member 将set1中的member元素移动到set2
  9. sinter sunion sdiff set1,set2 对给定集合求交集/并集/差集,返回最终集合
  10. sinterstore,sunionstore,sdiffstore result set1,set2 和上类似,保存结果到result

五.ZSET(有序集合,不存在重复元素,每个集合元素都要double类型的分数,根据分数进行排序)

  1. zadd zset score member 将member元素和score插入zset,注意score在member前 如 zadd zset 1 jack 2 tom
  2. zrange zset start end [withscores] 返回指定区间内的值,可以携带score
  3. zrangebyscore zset min max[withscores] 返回zset中score介于min和max之间的元素(闭区间)
  4. zrank zset member 获取zset中member的排名(score从小到大)
  5. zrevrank zset member 获取排名(从大到小) 排名最前0
  6. zremrangebyscore zset min max 删除zset中score介于min和max之间元素,返回被删除元素数量
  7. zremrangebyrank zset start stop 删除排名在start和stop闭区间内的元素,返回被删除元素数量
  8. zrem zset member 删除元素
  9. zcard zset 获取元素数量
  10. zcount zset min max 获取score在min和max之间的元素数量
  11. zinterstore/zunionstore/ result zset1 zset2计算给定集合的交集、并集

六.HASH(哈希表)

  1. hset hash field value 将哈希表hash中的filed的值设为value
  2. hgetall hash 获取所有field和value
  3. hmset hash field value 将域值对设置到哈希表中
  4. hget hash field 获取hash中field的值
  5. hmget hash field 返回包含指定域的关联值的表,顺序和参数顺序一致
  6. hdel hash fidld 删除指定域
  7. heln hash 统计域数量
  8. hexists hash field 判断field是否存在
  9. hincrby hash field value 在key中field的值增加整形值value
    如 hincrby hash age 10 年龄加10
  10. hincrby float 同上,增加浮点值
  11. hkeys hash 获取所有field
  12. hvals hash 获取所有值

七.Redis事务

  1. 事务:本质是一组命令的集合,事务中的所有命令都会序列化,按顺序执行不会被其他命令插入

  2. 事务的ACID特性(原子性、一致性、独立性、持久性)

  3. MULTI命令开启事务:用于标记事务的开始

  4. EXEC命令:完成事务,执行

  5. DISCARD:失败,取消事务

  6. 悲观锁:每次取数据时都给数据加锁,阻塞别人拿数据;数据记录很多时并发差,一致性好;常用于数据备份、格式化

  7. 乐观锁:每次更新后提交时检查数据是否最新,不是就放弃更新;吞吐量高,并发性好;常用于多读应用

  8. 事务的watch命令 watch key key1 监听事务的键值是否发生变化,都没有被修改,事务才能执行成功;执行了exec或discard后会自动取消watch监控

  9. Unwatch 取消所有watch命令对键的监视

  10. 事务过程
    在这里插入图片描述

  11. redis是部分支持事务或支持简单事务,不完全满足原子性特征

八.redis消息订阅

  1. 消息订阅发布模式是一种常用的设计模式,角色包含主题、订阅者、发布者
  2. 发布者与订阅者具有一对多的关系,之间存在依赖性,订阅者必须订阅主题后才能接收到发布者发布的信息
  3. publish channel message 发布者将消息发送给指定频道,返回接收到消息的客户端的数量
  4. subscribe channel 客户端订阅消息频道
  5. unsubscribe channel 取消订阅指定频道
  6. psubscribe pattern 工具指定模式订阅所有符合pattern的频道,如h?llo h*llo

九.RDB持久化

  1. 持久化:采用某种方式将数据从内存保存到硬盘中,使得服务器重启之后可以工具硬盘保存的数据进行恢复
  2. RDB持久化:根据指定的规则“定时”将内存中的数据保存到硬盘中;每隔N分钟或N次写操作后,自动将内存中的所有数据生成副本,经过压缩存储在硬盘目录
  3. 优点:文件体积小,适用于进行数据库数据备份;恢复数据时的速度块;并行性好
  4. 缺点:两个RDB保存点间如果发生断电会损失期间写入的数据;数据量庞大时操作耗时、影响服务器性能;RDB文件存在兼容问题
  5. 适用场景:可以接收短时间的数据丢失,RDB对Redis的性能更有利;RDB文件小、恢复块,灾难恢复(有快速恢复要求的)常用RDB文件

十.AOF持久化

  1. AOF持久化:保存服务器执行的所有写操作命令到单独的日志文件中;服务器重启时,通过加载日志文件中的命令执行并恢复数据;实时性更好
  2. AOF重写:将内存中的数据逆化成命令写入AOF日志;重写会丢弃过期的数据和无效的命令
  3. 服务器启动后会优先使用AOF文件进行恢复数据库(而不是RDB)
  4. RDB数据恢复的速度快,因为其是数据的内存映射,直接载入内存即可
  5. 优点:安全性好、兼容性好
  6. 缺点:AOF文件体积会逐渐变大,导致加载速度慢,影响数据库状态的恢复速度,性能快速下降;数据恢复速度慢于RDB文件恢复数据的速度
  7. 选择:建议同时使用AOF和RDB,最大限度保证数据的持久性和安全性

十一.Redis集群配置和主从复制

  1. Redis集群作用:主从备份,防止主机宕机造成数据丢失;读写分离,减轻主节点压力;任务分离,如从服务器分担备份工作与计算工作
  2. 集群星型结构:一主多从,中心化较为严重,主机宕机后修改的slave数量也多
  3. 集群线型结构:从服务器也有自己的从服务器,master宕机后切换主从关系简单
  4. Redis主从复制:slave对master进行复制,master中数据更新后自动同步到从服务器上,其中master以写为主,slave以读为主
  5. 全量同步:slave初始化阶段,将master所有数据都复制一份
    增量同步:master执行命令就从slave发送相同写命令,slave接收并执行
    Redis策略:无论如何,先尝试增量同步,如不成功再进行全量同步
  6. 主从复制缺陷:master同步到slave有一定延迟,系统繁忙时延迟更严重;每次slave断开再连接master都要重新同步,如果多台slave同时启动困难IO剧增

十二.Redis运维和哨兵模式

  1. time命令:获取当前服务器的时间
  2. dbsize:统计当前数据库中键的数量
  3. bgrewriteaof:执行AOF文件重写操作
  4. save:保存RDB数据到磁盘
  5. bgsave:异步方式将快照数据保存到当前数据库的磁盘中
  6. lastsave:获取最近一次redis成功将数据保存到磁盘上的时间
  7. flushall:清空所有数据库所有键
  8. flushdb:清空当前数据库所有键
  9. info:查看redis服务器的各种信息
  10. config get:获取redis服务器的配置参数
  11. config set:修改redis服务器的配置
  12. shutdown:关闭服务器
  13. 哨兵模式:由一个或多个哨兵组成的哨兵系统
    监控:监控服务器是否发生故障
    通知:master发生故障时,立即发送通知
    自动故障转移:根据优先级从slave选举出一台新的master,代替继续处理命令及完成相关工作
  • 33
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值