首页 > 数据库 >Redis学习:十大数据类型、RDB持久化

Redis学习:十大数据类型、RDB持久化

时间:2024-10-24 18:17:59浏览次数:10  
标签:redis 数据类型 元素 Redis 指定 value key RDB

在这里插入图片描述

Redis学习

文章目录

1. Redis-10大数据类型

数据类型是value的类型key的类型都是String
数据类型是value的类型,key的类型都是String
数据类型是value的类型,key的类型都是String
命令不区分大小写,但key是区分大小写的
命令不区分大小写,但Key是区分大小写的
命令不区分大小写,但Key是区分大小写的
去官网查询操作数据类型的命令(commands
永远的帮助命令help @类型,可以查看指定数据类型的所有命令介绍
0. 常用操作
1. ttl key:查看剩余过期时间,以s返回
2. pttl key:以ms返回
3. config get 参数名:返回配置文件中指定参数的值

  1. 字符串(String)
    1. 介绍
      1. String字符串是redis最基本的数据类型
      2. key都是String类型
      3. 且是二进制安全的,可以包含任何数据(最多可以是512M)![[Pasted image 20241020140513.png]]
    2. 常用操作
      1. set key value [键值] [返回值] [时间]
        1. SET指令不仅可以创建键值对,也可以更新键值对
        2. NX:当该键不存在时才创建(相当于初始化(只有第一次));XX:当该键以及存在时才会创建(相当于更新)
        3. GET:在添加之前先返回当前键的值,然后再添加
        4. EX、PX:设置当前键的存活时间,时间单位不同
        5. KEEPTTL:保留设置前指定键的生存时间否则每次设置修改指定键后都是永不过期
      2. get key
        1. 获取指定键的值,不存在则返回nil
      3. 同时设置/获取多个键值 MSET / MGET
        1. MSET key value [key value key value...]
        2. MGET key [key key...]
        3. MSETNX key value [key value...]:必须整体全部生效,有一个不成功则全部不成功
      4. 获取指定区间范围内的值 SETRANGE / GETRANGE
        1. GETRANGE key start end:对指定的键的String数据进行切片,类似substring,左闭右闭,且 0 -1 是返回整个字符串
        2. SETRANGE key offset value:对指定键的String从offset开始设置value
      5. 数值增减 INCR / DECR
        1. 指定键的值一定要是数字才可以加减
      6. 获取字符串长度 STRLEN key
      7. 内容追加 APPEND key value
      8. 分布式锁 SETNX / SETEX key time value
        1. 使用 setnx 命令来创建分布式数据,此时只会同时存在一份,当用完之后使用 del 删除,此时才可以继续创建,这样就可以保证某个数据只可同时存在一份,实现分布式
        2. SETEX key time value:将set和expire(设置过期时间)两个命令合为一个原子操作,也可以set key value ex time 来实现
      9. GETSET:先get再set,和set key value get 一样
  2. 列表(List):单key多value
    1. 介绍
      1. List(ArrayList)是字符串列表可以插入头部也可以插入尾部
      2. 底层是双端链表,在两端均可以进行插入和删除
      3. 单key多value,底层是双端链表
      4. 最多 2^32 - 1个元素
    2. 常用操作(命令不区分大小写)
      1. LPUSH / RPUSH / LRANGE
        1. LPUSH key v1 v2 v3将输入的values依次从左端插入列表,此时顺序是v3 v2 v1倒序排列
        2. RPUSH key v1 v2 v3将输入的values依次从右端插入列表,此时顺序是v1 v2 v3顺序排列
        3. LRANGE key start end:根据指定的顺序从左向右遍历列表中的所有元素0 -1 表示返回所有元素,且遵循左闭右闭原则
        4. 没有RRANGE命令
      2. LPOP / RPOP
        1. LPOP key:将列表中最左端的元素弹出去
        2. RPOP key:将列表中最右端的元素弹出去
      3. LINDEX
        1. LINDEX key index:根据下标获得列表中的值
      4. LLEN:获取长度
        1. LLEN key:获取指定列表中元素个数
      5. LREM:删除k个指定元素
        1. LREM key n val:从列表中删除n个值为val的元素
      6. LTRIM:裁剪
        1. LTRIM key startIndex endIndex:将列表指定范围元素截取后再重新赋值给指定的列表
        2. 下标遵循左闭右闭
      7. RPOPLPUSH
        1. RPOPLPUSH list1 list2:将左边列表最后一个元素弹出RPOP加入到右边列表第一个中LPUSH
        2. 将两个命令合为一个原子操作
      8. LSET
        1. LSET key index value:修改列表指定下标位置的值,下标从0开始
      9. LINSERT
        1. LINSERT key before/after 已有值 新的值:在列表的指定已存在的值的前面/后面插入新的值
  3. 哈希表(Hash)
    1. 介绍
      1. Map(HashMap)是一个string的field字段和value的KV映射表
      2. 哈希表的 value 是一个键值对:key {key:value} ~ Map< String, Map<> >
    2. 常用操作(命令不区分大小写)
      1. HSET / HGET / HMSET / HMGET / HGETALL / HDEL
        1. HSET key field value对指定哈希表的某个字段赋值不存在时就创建,存在时就修改,一次只可操作一个键值对;哈希表的value是一组键值对
        2. HGET key field:获取指定哈希表的指定字段的值
        3. HMSET key …:可以一次性为key插入多个字段和值
        4. HMGET key field1 field2…:可以一次性获取指定哈希表的多个字段的值
        5. HGETALL key:返回指定哈希表的所有字段以及值
        6. HDEL key field:删除哈希表的某个字段
      2. HLEN key
        1. HLEN key:返回哈希表的字段个数
      3. HEXISTS key field
        1. HEXISTS key field:判断指定哈希表中某个字段field是否存在,存在则返回1,不存在返回0
      4. HKEYS / HVALS
        1. HKEYS key:返回指定哈希表中所有的字段
        2. HVALS key:返回指定哈希表中所有的字段的值
      5. HINCRBY / HINCRFLOAT key field num
        1. HINCRBY key field num:对哈希表某个整数类型的字段+num
        2. 小数类型
      6. HSETNX key field value
        1. HSETNX key field value:当哈希表的某个字段不存在时才会对该字段赋值,存在时失败
  4. 集合(Set):无需无重复
    1. 介绍:类似HashSet的String集合,无序无重复
      1. Set(HashSet)是String类型无序无重复,集合成员是唯一的,单key多value
      2. 通过哈希表实现,添加、删除和查找都是O(1)
    2. 常用操作(命令不区分大小写)
      1. SADD key member1 …
        1. SADD key member1 …:向集合中添加成员,可以同时添加多个如果有重复则会自动删除
      2. SMEMBERS key
        1. 遍历指定集合中的所有元素
      3. SISMEMBER key member
        1. 判断某个元素是否在集合中
      4. SREM key member1 m…
        1. 删除指定集合中存在的元素,如果不存在则删除失败,可以同时删除多个
      5. SCARD key
        1. 返回指定集合中元素的个数
      6. SRANDMEMBER key [数字]
        1. 从集合中随机展示指定数字个成员(默认1个),且不会删除成员,只是展示不会删除
        2. 只是随机展示集合中的元素,不会删除
      7. SPOP key [count]
        1. 随机删除集合中的元素并展示,出一个删除一个
        2. 可以用来直接做抽奖小程序,直接随机弹出指定个数的元素
      8. SMOVE key1 key2 key1member
        1. 将第一个集合中的某个存在的元素移动到第二个集合中,且第一个集合的该元素会删除
      9. 集合运算- ∪ ∩
        1. SDIFF 差集运算
          1. SDIFF key1 key2…:对指定的集合做差集运算,即key1 - key2(属于key1但不属于key2的元素),并返回结果集合
        2. SUNION 并集运算 ∪
          1. SUNION A B C…
          2. 将指定的所有集合做并集,并返回结果集合
        3. SINTER 交集运算 ∩
          1. SINTER A B C…:将指定的所有集合做交集运算,并返回结果集合
        4. SINTERCARD numkeys k1 k2 [key...] [LIMIT limit]
          1. 对指定个数的集合做交集后,返回结果集合的个数,不是返回结果集,而是返回结果集合的个数
  5. 有序集合(ZSet):有序无重复
    1. 介绍:和Set类型,但加了一个score
      1. 也是String类型元素集合,且有序无重复,通过关联一个分数score来进行排序
      2. 通过哈希表实现,添加、删除和查找都是O(1)
      3. 在SET集合的基础上,为每个value前加上一个score分数值,根据分数值对每个value排序即 ZSET key score value
    2. 常用操作(命令不区分大小写)
      1. ZADD key score1 value1…
        1. 向有序集合中加入元素,必须要指定元素value的score,要根据score对value进行排序
      2. ZRANGE key start end [withscore]
        1. 返回有序集合中指定下标范围内的元素,可以设置带不带score
      3. ZREVERSE key
        1. 以翻转的方式返回指定范围元素
        2. 等价于ZRANGER key REV
      4. ZRANGEBYSCORE key min max [withscore] [LIMIT limit]
        1. 根据指定的score范围返回元素
        2. 默认是左闭右闭,可以使用 (min 表示开
      5. ZSCORE key value
        1. 获取指定元素的分数
      6. ZCARD key
        1. 获取所有元素个数
      7. ZREM key member
        1. 根据元素的值删除集合中的元素
      8. ZINCRBY key incrScore value
        1. 对集合中指定元素的分数加上指定的数
      9. ZCOUNT key min max
        1. 指定分数范围内的元素的个数进行统计
      10. ZMPOP count key MIN|MAX [COUNT count]
        1. 从键名列表中的第一个非空排序集中弹出一个或多个元素
      11. ZRANK key value
        1. 获取指定元素的下标值,即排名数
      12. ZREVRANK key value
        1. 逆序获取指定元素的下标值,即倒数排名值
  6. 地理空间(GEO)
    1. 介绍:经纬度
      1. 底层使用的是redis的ZSET数据类型相当于对某个位置value添加一个额外信息(经纬度):GEO key 经纬度 value
      2. 故可以使用ZSETRANGE key来得到GEO中的value,如果有中文乱码,则在启动redis-cli时添加 --raw 参数
      3. 存储地理位置信息(经纬度)
    2. 常用操作(命令不区分大小写)
      1. GEOADD key longitude latitude member
        1. 向GEO类型的key中添加一个位置的经纬度,使用member对位置进行命名,必须使用经纬度格式进行添加
        2. 用经纬度来标识地图上的某个点
      2. GEOPOS key value…
        1. 返回GEO中指定元素的经纬度
      3. GEOHASH key value
        1. 返回位置经纬度的hash编码,将二维数据转换为一维
      4. GEODIST key v1 v2 单位
        1. 以指定的单位返回GEO中存在的两处位置的距离
      5. GEORADIUS
        1. 在指定的GEO的集合中,返回距离以给定经纬度为中心的半径内的位置
      6. GEORADIUSBYMEMBER
        1. 和GEORADIUS一样,只不过不是显示输入经纬度,而是输入某个位置,要保证该集合内存在该位置
  7. 基数统计(HyperLogLog)
    1. 介绍:统计集合中不重复元素个数
      1. 统计UV独立访客,一般是访问者IP),IP一样认为是同一个
      2. HyperLogLog是用来做基数统计的算法基数就是去掉重复后的数字
      3. 基数统计就是统计一个集合中不重复的元素个数就是去重脱水后的真实数据
      4. 只可以得到不重复元素个数,无法获得内部的元素
      5. 属于String类型的数据,不会保存数据,无法获得内部元素
      6. 根据数字的基数进行统计
    2. 常用操作(命令不区分大小写)
      1. PFADD key ele1 ele2…
        1. 将元素加入hyperLogLog中,其会进行去重操作
      2. PFCOUNT key
        1. 返回指定key中元素个数,去重后的元素个数
      3. PFMERGE key1 key2
        1. 将两个去重的HyperLogLog合并为一个不重复的HyperLogLog
  8. 位图(bitmap)
    1. 介绍:由0/1状态表现的二进制位的bit数组
      1. 用String类型作为底层数据结构实现统计二值状态的数据类型
      2. 本质是数组,基于String类型的按位操作
      3. 用于状态统计
    2. 常用操作(命令不区分大小写)
      1. SETBIT key offset value
        1. 对指定的位图的第offset位置进行赋值value位图的偏移量从0开始,值value只可以是 0 或者 1,其余会报错
      2. GETBIT key offset
        1. 获得指定位图指定偏移量上的元素值
      3. GET key
        1. 因为位图是基于String数据类型,故可以使用GET来获得位图的值,此时是将位图的每个二进制根据ASCII码来返回对应的字符,如果使用GETBIT则只返回二进制值,每8个bit形成一个ASCII码
      4. STRLEN key
        1. 统计占用了多少字节数,每8bit是一个字节,不是字符串长度
      5. BITCOUNT key [start end]
        1. 返回位图指定范围内值为1的元素个数,不指定范围则返回所有的1
      6. BITOP oper destKey key1 key2
        1. 对给出的两个位图进行指定的位运算,并将结果保存到指定的destkey位图中
  9. 位域(bitfield)
    1. 介绍
      1. 进行位域修改和溢出控制
      2. 将一个Redis看做一个存放二进制位的数组
    2. 常用操作(命令不区分大小写)
      1. BITFEILD key GET TYPE offset
        1. 将字符串转换为二进制位数组,并根据类型和偏移量获取由type指定的位数![[Pasted image 20241021145811.png]]
      2. BITFIELD key SET TYPE offset value
        1. 将指定offset开始的由type指定的位数修改为指定的value
      3. BITFIELD key INCRBY TYPE OFFSET increment
        1. 将指定offset开始的指定的type中的bit位增加指定大小
        2. 默认使用WRAP循环移除参数,当溢出时会循环
      4. OVERFLOW(溢出控制)
  10. 流(Stream)
    1. 介绍
      1. redis-stream就是redis版本的MQ消息队列
      2. redis的消息队列可以用list实现,支持点对点,但无法多对多,也可以用pub/sub(消息订阅/发布)来实现多对多,但无法持久化,会被丢弃,也无法保证可靠性
      3. 故引入Redis版的MQ消息中间件+阻塞队列redis-stream
      4. 类似于消息中间件,提供了消息的持久化和主备复制功能
    2. 常用操作(命令不区分大小写)
      1. 队列相关指令
        1. XADD key id|* field value …
          1. 向消息队列中插入消息,必须要有指定的ID( * 是指使用默认生成的ID),后面跟着该消息的键值对
          2. 传入的ID必须由两部分组成:毫秒时间戳+当前毫秒中消息编号,以保证消息的ID唯一
        2. XRANGE key start end (count)
          1. 在指定的消息队列中获取指定范围内的消息,-代表最小值,+代表最大值
          2. ![[Pasted image 20241021140104.png]]
        3. XREVRANGE key end start
          1. 以倒序返回
        4. XDEL key ID
          1. 删除消息队列中指定ID的消息
        5. XLEN key
          1. 获得消息队列中总消息个数,只根据ID进行统计
        6. XTRIM
          1. XTRIM key maxlen count:将消息队列的最大长度的消息进行截取并覆盖之前的队列
          2. XTRIM key mindi id:根据传入的id作为最小值进行截取
          3. ![[Pasted image 20241021140547.png]]
        7. XREAD
          1. block time:阻塞读取,就是当没有时会一直阻塞指定的时间,直到读取成功或者时间结束,若设置time=0,则会无限期阻塞
          2. 默认非阻塞,就是如果有则读取,没有则直接返回,不会等待
      2. 消费组相关指令
        1. XGROUP CREATE key group id
          1. 指定的Stream创建消费组,必须指定消费组开始消费的ID
        2. XREADGROUP GROUP
          1. 使得某个消息队列的某个组的消费者对该队列进行消费,即从设置的指定id开始读取队列中的消息
          2. Stream中的消息一旦被消费组里任一个消费者读取了就不可以再继续读取
        3. XPENDING
          1. 查看指定消息队列某个消费组里面已经读了但还未确认的消息个数以及某个消费者读了哪些数据
        4. XACK
          1. 对消息队列中消费者已读但未确认的消息进行确认
      3. XINFO打印Stream\Consumer\Group的信息
  11. Redis键(Key)操作
    1. 一个redis默认携带16个数据库DB(下标0-15),默认使用0号库
    2. keys * :查看所有的key,太多时不要用
    3. exists key1 key2…:判断key是否存在,返回存在的个数
    4. del key:以原子操作形式删除key
    5. unlink key:非阻塞删除key
    6. ttl key:time to leave:查询剩余过期时间,-1永不过期,-2已过期
    7. expire key sencond:给key设置过期时间
    8. select index:切换当前数据库到指定的下标【0-15】,默认0号库
    9. move key dbindex:将指定的key从当前数据库移到指定的数据库
    10. dbsize:查看当前数据库key的个数
    11. flushdb:情况当前库
    12. flushall:情况所有库

2. Redis持久化

  1. 总体介绍
    1. 持久化就是如何把redis在内存中的数据保存进入磁盘中
    2. 当redis宕机时,内存中的数据会消失,故要对内存中的数据进行保存进入磁盘中
    3. redis提供了多种持久化类型,常用的有RDB(Redis DataBase)和AOF(Append Only File)两种
  2. 持久化双雄
    1. RDB(快照)
      1. 介绍
        1. RDB文件就是某一个时刻redis所有数据和状态所组成的快照文件
        2. RDB就是以指定的时间间隔得到快照文件并保存到磁盘中
        3. RDB持久化:以指定的时间间隔执行数据集的时间点快照
        4. 快照:把某一时刻的数据和状态以文件的形式写到磁盘上
        5. 这个快照文件就是RDB文件
        6. 指定的时间间隔内将该时刻的数据和状态保存为快照文件RDB文件,并将该文件保存到磁盘中
        7. 保存备份时执行的是全量快照,将所有的数据和状态保存到RDB文件(dump.rdb)中,然后把快照保存到磁盘里
      2. 案例演示
        1. 配置
          2. RDB保存时间配置:在配置文件中设置 save second changes:即在指定的second内改变了changes次则会进行RDB持久化将此时的快照保存到磁盘中
          3. Redis7之前是自动触发,此时的触发频率很高
          4. Redis7配置:此时触发频率进行了降低
        2. 操作步骤
          1. 自动触发
            1. 配置
              1. 在redis.conf配置文件中通过 save second changes命令来设置RDB持久化的触发频率,此时若在secodn时间内修改了change次,则就自动触发进行RDB持久化
            2. 修改dump.rdb的保存路径
              1. 要确保配置的文件夹存在
            3. 修改dump.rbd文件的名字
              1. 在redis.conf文件中配置dbfilename属性
            4. 触发备份
              1. 此时就设置好了redis的RDB持久化的自动触发,当设置的时间间隔内改变了指定次数,就会自动触发RDB持久化,生成指定的dump.rdb文件并保存到指定的dir路径下
              2. 只要修改次数超过了设置的次数changes,则就会自动触发
              3. 执行flushdb/flushall清除指令时,redis也会自动生成一个dump.rdb文件,但该文件是空的,保存的是删除后的数据和状态
            5. 恢复备份
              1. 将生成的备份文件直接移动到redis安装目录并启动服务即可恢复备份
              2. 要注意flushdb/flushall执行后也会生成dump.db文件但是空的无意义,故要恢复必须对有数据的rdb文件进行备份,然后将该文件移动进去
              3. shutdown关闭服务器时也会自动触发RDB持久化生成最后的快照保存到指定的位置,一定要将服务和备份分机隔离
              4. 物理恢复,一定要将服务和备份分机隔离
            6. 通过在redis-cli中使用config get 参数名来获得所设置的参数的值
          2. 手动触发
            1. 对于必须现在保存的数据进行手动触发,通过save和bgsave命令来生成rdb文件,就是开一个子线程去保存rdb文件
            2. SAVE:不推荐使用!会阻塞redis主线程
              1. save会开一个子线程保存rdb文件,但会阻塞redis主线程,直至持久化工作结束,禁止使用
            3. BGSAVE(默认)(不阻塞,推荐使用
              1. 创建(fork)一个异步的子线程去执行RDB持久化工作不会阻塞redis的主线程,redis主线程可以同时执行请求
            4. LASTSAVE获取最后一次成功执行快照RDB保存的时间戳,然后在linux命令行使用 date -d @时间戳 转换为标准时间
      3. RDB文件(快照)优缺点
        1. 优势
          1. 适合大规模的数据恢复(文件比较小)、按照业务定时备份、对数据完整性和一致性要求不高、RDB文件在内存中的加载速度比AOF更快
        2. 劣势
          1. 在上次保存后下次还未保存时的数据可能会丢失;每次保存都是全量保存,数据量太大时会导致I/O严重影响性能;RDB依赖主进程的fork()形成子进程进行持久化,导致内存占用太大
      4. 如何检查修复dump.rdb文件
        1. 使用redis自带的redis-check-rdb(在redis-cli同一个文件夹内)来对指定的RDB文件进行修复
      5. 哪些情况会触发RDB快照
        1. flushdb/flushall(空的)/shutdown
        2. save/bgsave
        3. 修改次数超过conf文件中配置的changes
      6. 如何禁用快照
        1. 如何禁用RDB模式:修改redis.conf配置文件,对save命令的参数设置为"",此时就不会自动触发RDB持久化(可以在redis-cli下使用config set save “” 来设置,但不如直接在配置文件内设置)
      7. RDB配置项详解
        1. redis.config配置文件的SNAPSHOTTING模块
        2. stop-writes-on-bgsave-erroe
          1. 当bgsave持久化出错时,是否停止redis主线程的写请求,通过不停止则会导致数据的不一致性
        3. rdbcompression
          1. 是否对rdb文件进行压缩,默认开启
        4. rdbchecknum
          1. 是否对RDB文件中的数据进行数据校验,会消耗10%的性能
        5. rdb-del-sync-files
          1. redis主从复制时是否删除rdb

标签:redis,数据类型,元素,Redis,指定,value,key,RDB
From: https://blog.csdn.net/LiuYQi/article/details/143196993

相关文章

  • Redis面试题
    1.Redis的简介高速内存数据库:Redis是一个存储在内存中的数据库,这意味着它的读写速度非常快,非常适合做缓存;多种数据结构:字符串、哈希散列、列表、集合;持久化选择:可以选择将数据定期存储到磁盘中,防止重启时数据丢失;事务支持:可以将一组操作看成一个整体一起执行,确保了操作的完整......
  • 1. Redis简介与安装
    1.1什么是RedisRedis(RemoteDictionaryServer)是一个开源的、基于内存的数据结构存储系统,支持多种数据结构,如字符串、列表、集合、有序集合和哈希。它不仅能作为一个高效的缓存工具,还能作为消息队列、分布式锁和持久化存储等广泛的场景中使用。Redis的历史Redis由意......
  • ubuntu里 docker 启动springboot工程,报连不上redis
    也挺奇怪的,直接在ubuntu里使用idea是可以跑起来的。一样使用docker部署,centos7.3里面能正常启动,但是,ubuntu22.04里面就跑不起来了。具体报错:RedisConnectionException:Unabletoconnectto192.168.50.128/<unresolved>:6319这个是DockerFileFROMeclipse-temu......
  • Redis高可用-集群部署
    redis配置Redis集群需要至少3个主节点,为保证数据的完整性每个主节点至少需要一个从节点,所以至少需要准备6个Redis服务建议将redis注册为系统服务并设置自启动,服务注册命令为:redis-server--service-installredis.windows.conf--service-nameredis6379--loglevelverbose......
  • 鸿蒙Next数据同步艺术:常见数据类型处理
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。引言在华为鸿蒙HarmonyOSNext中,标准化......
  • redis学习笔记整理
    安装redis6.2.6一件安装脚本#!/bin/bash#修改系统参数echo'net.core.somaxconn=1024'>>/etc/sysctl.confecho'vm.overcommit_memory=1'>>/etc/sysctl.conf#以上两个系统参数不调整,在redis启动时将会有两条WARNING提示:#WARNING:TheTCPbacklogsettingof511......
  • 如何使用Java设计一个RDB格式的Redis
    RDB的使用场景数据备份:RDB适合定期备份Redis中的数据,帮助在系统崩溃或意外情况下恢复数据。冷备份:在不需要频繁写入数据的场景(如数据分析、报告生成),RDB可以作为冷备份使用。启动时数据加载:在系统启动时,通过加载RDB文件快速恢复数据,提高启动速度。数据迁移:使用RD......
  • 如何使用Java设计一个AOF格式的Redis
    AOF的使用场景高数据安全性需求:适用于对数据一致性要求高的应用场景,如金融交易系统、订单处理系统等。频繁写入操作:AOF适合频繁进行写操作的场景,因为它记录每个写命令,可以有效恢复最新数据。实时数据恢复:当系统崩溃或发生故障时,AOF能快速恢复数据,适合需要高可用性......
  • JavaScript:三、数据类型
    JavaScript:三、数据类型JavaScript将数据类型分为两大类,分别是基本数据类型(或称为值类型)和复杂数据类型(或称为引用类型)。值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。引用数据类型(对象类型):对象(Object)、数组(Array)......
  • Linux安装Redis(保姆教程)
    1,安装GCC依赖#sudo表示以管理员身份运行,如果使用的是管理员用户就不需要sudosudoyuminstall-ygcc2,添加EPEL仓库yuminstallepel-release#更新yum源yumupdate3,安装redisyuminstallredis4,查看redis安装的路径,默认安装路径为:/var/lib/redisfindI-nameredis5,修改......