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

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

时间:2024-06-07 22:32:40浏览次数:13  
标签:set hash zset 元素 redis value 苏立超 key 复习提纲

第三章(考点: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,代替继续处理命令及完成相关工作

标签:set,hash,zset,元素,redis,value,苏立超,key,复习提纲
From: https://blog.csdn.net/m0_73761441/article/details/139535650

相关文章

  • Redis-12-SpringBoot集成Redis哨兵模式
    Redis哨兵的配置,参考我这篇文章:Redis-5-高可用1.背景网上搜半天没搜到份好用的,自己整理了下方便以后复制,基于springboot2.6.13。lettucecommons-pool22.集成2.1导入pom<!--spring-redis--><dependency><groupId>org.springframewor......
  • 使用Redis优化Java应用的性能——高效的缓存实践
    引言:在现代应用开发中,高效的缓存策略是提升性能和用户体验的关键。Redis作为一个高性能的键值存储系统,提供了一种快速存取数据的方式,帮助Java应用处理大量动态信息而无需频繁查询数据库。什么是Redis?Redis是一个开源的键值存储系统,它支持多种类型的数据结构如字符串、哈希、......
  • Docker 下载redis
    docker拉取redis镜像dockerpullredis:对应的版本号(不写默认为最新版) 查看镜像是否拉取成功dockerimages 创建redis配置文件启动前需要先创建reids的外部挂载的配置文件(/opt/docker/redis/conf/redis.conf)(因为redis本身容器只存在/etc/redis目录,本身就不创建redis......
  • 高并发下使用Redis分布式锁确保接口执行唯一性【重点】
    摘要:本文将介绍如何使用Redis分布式锁来确保在高并发环境下,确保某个接口只有一个线程能够执行。通过使用Redis的SETNX命令,我们可以实现一个简单的分布式锁,从而避免多个线程同时访问共享资源。一、背景在高并发的系统中,为了保证数据的一致性和完整性,我们经常需要对某些接口......
  • 谈谈Redis缓存中MySQL的数据如何与Redis同步
    在现代应用程序中,性能和响应速度是至关重要的。为了提高数据访问速度,常常会使用缓存技术。Redis作为一种高性能的内存数据库,常被用作缓存层,而MySQL则作为持久化存储层。如何有效地将MySQL数据与Redis缓存进行同步,是一个关键问题。本文将详细探讨Redis作为缓存时,http://ww......
  • 【百万字详解Redis】集群部署
    文章目录Redis集群部署......
  • 在微服务架构模式中Redis的应用
    1. Redis概述                Redis是一种开源的内存数据库,也被称为数据结构服务器,它支持多种数据类型,如字符串、哈希表、列表、集合和有序集合。Redis具有快速、高效的特点,可以在内存中存储数据,并通过持久化机制将数据写入磁盘,保证数据的持久性。Redis还提......
  • Redis(事务、持久化、高可用 、高可扩、过期删除、内存淘汰)说明、分析、区别
    Redis高级理解Redis事务机制掌握Redis持久化机制理解Redis高可用—主从复制、哨兵模式理解Redis高可扩—RedisCluster数据分片掌握Redis过期删除策略掌握Redis内存淘汰策略1事务机制1.1场景分析以关注为例,在B站上程序员关注了A,同时A也关注了程序员,那么......
  • 浅谈Redis的三种集群策略及应用场景
    本文分享自天翼云开发者社区《浅谈Redis的三种集群策略及应用场景》,作者:段林Redis提供了三种集群策略:1.主从模式:这种模式⽐较简单,主库可以读写,并且会和从库进⾏数据同步,这种模式下,客户端直接连主库或某个从库,但是但主库或从库宕机后,客户端需要⼿动修改IP,另外,这种模式也⽐较难进......
  • 数据太多时(百万条数据),查询采用Quartz + redis方式比较快
    Quartz+redisQuartz的简介:quartz是一款开源且丰富特性的**“任务调度库”,能够集成与任何的java**应用,下到独立应用,大到电子商业系统。quartz就是基于java实现的任务调度框架,用于执行你想要执行的任何任务。1.什么是任务调度?任务调度就是我们系统中创建了N个任务,每个任......