Redis的数据类型和使用场景常见面试题记忆

    技术2025-02-24  11

    Redis支持的数据类型:

    String字符串:

    格式:set key value

    string类型是二进制安全的,string可以包含任何数据,比如jpg图片或序列化对象。

    string类型是redis最基本的数据类型,一个键最大能存储512MB。

    Hash哈希:

    格式:hmset name key1 value1 key2 value2

    Redis hash是一个键值对(key=>value)集合。

    Redis hash是一个string类型的映射表,hash特别适合用于存储对象。

    List列表:

    格式:lpush name value头部添加字符串元素

               rpush name value尾部添加字符串元素

               llen name返回对于list的长度

    Set无序集合:

    格式:sadd name value

    集合是通过哈希表实现的,所有添加、删除、查找的复杂度都是O(1)。

    Zset有序集合:

    格式:zadd name score value

    集合中不允许重复的成员,不同的每个元素都会关联一个double类型的分数。redis正是通过集合中的成员进行从大到小的排序。

    zset成员是唯一的,但分数score可以重复。

     

    什么是Redis持久化?Redis有哪几种持久化方式?优缺点是什么?

    持久化就是把内存的数据写到磁盘中去,防止服务宕机,内存数据丢失。

    Redis提供了两种持久化方式:默认RDB 和 AOF

    RDB:

    rdb是Redis DataBase缩写

    功能核心函数rdbSave(生成RDB文件)和rdbLoad(从文件加载内存)两个函数。

    AOF:

    aof是Append-only file缩写

    每当执行服务器定时任何或者函数时flushAppendOnlyFile函数被调用,该函数执行以下两个工作:

    aof写入保存:

    write:根据条件,将aof_buf中的缓存写入到AOF文件

    save:根据条件,调用fsync或fdatasync函数,将AOF文件保存到磁盘中。

    rdb 和 aof 的两个方式比较:

    aof文件比rdb更新频率高,优先使用aof还原数据。aof比rdb更安全也更大rdb性能比aof好如果两个都配了优先加载AOF

    Processed: 0.009, SQL: 9