详解Redis:什么是Redis?

什么是Redis?        

        Redis(Remote Dictionary Server)是一种开源的、高性能的、基于内存快速读写的的数据结构存储系统,常用于缓存,分布式锁等场景;

Redis常用数据类型有哪些?

  1. String(字符串)
    1. 适用场景:适合存储简单的键值对,如配置信息、计数器、缓存数据等。
    2.  相当于一个键值对,其中值是一个简单的字符串或数字。
    3. 示例数据:
    4. {'temperature': '25.5'}
  2. Hash(哈希)
    1. 适用场景:存储具有多个字段的对象,如用户资料、产品详情等,每个对象可以用一个哈希来表示,字段和值都可以是字符串。
    2. 类似于Map或字典,其中键是字段名,值是字段的值。
    3. 示例数据:
    4. {'user:1': {'name': 'John Doe', 'email': 'john.doe@example.com', 'age': 30}}
  3. List(列表)
    1. 适用场景:实现消息队列、最近浏览历史、排行榜等,列表支持从头部和尾部进行插入和弹出操作。
    2. 类似于数组或列表,其中所有元素都是字符串。
    3. 示例数据:
    4. ['message1', 'message2', 'message3']
  4. Set(集合)
    1. 适用场景:存储不重复的元素集合,如用户好友列表、兴趣标签集合等。
    2. 类似于集合,其中所有元素都是唯一的字符串。
    3. 示例数据:
    4. {'item1', 'item2', 'item3'}
  5. Sorted Set(有序集合)
    1. 适用场景:当需要在集合的基础上添加排序功能时,如热门文章、用户积分榜、在线用户按活跃度排序等。
    2. 类似于集合,但每个元素都有一个相关联的分数,用于排序。
    3. 示例数据:
    4. {'item1': 10, 'item2': 20, 'item3': 15}
  6. Bitmaps(位图)
    1. 适用场景:用于存储大量的二进制数据,如用户行为记录、网页爬虫的URL去重等,特别适合大数据量下的快速读写和节省内存。
    2. 位图是二进制位的数组,每个位代表一个布尔值。
    3. 示例数据:
    4. [0, 1, 0, 1, 1, 0, 0, 1]
  7. HyperLogLog(基数统计)    
    1. 适用场景:估算大量数据中的不同元素数量,如网站独立访客数、广告点击去重等,它利用概率算法提供高效率的近似计算。
    2. HyperLogLog是一种概率数据结构,用于估计集合中不同元素的数量。
    3. 示例数据:
    4. {'estimated_cardinality': 12345}
  8. GEO(地理信息)
    1. 适用场景:
    2. 存储地理坐标和相关的位置信息。
    3. 示例数据:
    4. {'location:1': {'latitude': 40.7128, 'longitude': -74.0060}, 'location:2': {'latitude': 37.7749, 'longitude': -122.4194}}
  9. Stream(流)
    1. 适用场景:处理实时日志、事件流、消息队列等,流支持自动修剪和分片,非常适合构建微服务间的通信和事件驱动架构。
    2. 流是有序的、可追加的日志条目集合。
    3. 示例数据:
    4. [
      3    ('15987654321', {'event': 'login'}),
      4    ('15987654322', {'event': 'purchase', 'item': 'book'}),
      5    ('15987654323', {'event': 'logout'})
      6]

Redis的其它系列功能

  1. 持久化(Persistence)
    1. 功能说明:Redis 支持两种持久化机制:RDB 快照和 AOF(Append Only File)。RDB 会在特定的时间点创建整个数据库的快照,而 AOF 则记录每次写操作,可以恢复到最后一次写入的状态。
    2. 用途:数据安全性和恢复,确保数据不会因为服务器重启而丢失
  2. 主从复制(Master-Slave Replication
    1. 功能说明:Redis 主从复制允许数据从一个主服务器复制到一个或多个从服务器,从服务器可以处理读取请求,减轻主服务器的压力。
    2. 用途:读写分离,提高系统的可扩展性和容错性。
  3. 哨兵(Sentinel
    1. 功能说明:哨兵是一个分布式系统,用于监控主从服务器的状态,当主服务器不可用时,可以自动完成故障转移,选择一个新的主服务器。
    2. 用途:高可用性,自动故障检测和恢复。
  4. 事务(Transactions
    1. ​​​​功能说明:Redis 允许将一系列的命令打包成一个事务,事务中的命令会顺序执行,但并不保证原子性,事务中的命令在提交前不会被其他客户端看到。
    2. 用途:保证一组操作的顺序执行,尽管不提供完整的 ACID 特性,但有助于实现更复杂的应用逻辑。
  5. 发布与订阅(Pub/Sub)
    • 功能说明:Redis 提供了发布/订阅模型,客户端可以订阅频道,其他客户端可以向频道发布消息,订阅者会收到所有发布的消息。
    • 用途:构建消息队列、事件通知系统、聊天室等功能。
  6. Lua脚本(Scriptiing)
    • 功能说明:Redis 支持使用 Lua 脚本来执行复杂操作,脚本可以在服务器端执行,减少网络延迟。
    • 用途:实现更复杂的业务逻辑,避免多次往返调用,提高性能。
  7. 模块(Modules)
    • 功能说明:Redis 支持加载外部编写的模块,以扩展其功能,模块可以提供新的数据类型和命令。
    • 用途:通过模块可以实现如搜索、图数据库、时间序列分析等功能。
  8. 慢查询日志(Slow Log)
    • 功能说明:慢查询日志可以记录执行时间过长的命令,这对于性能调优和诊断问题非常有帮助。
    • 用途:性能监控,优化查询效率。
  9. 监视器(Monitor)
    • 功能说明:监视器模式可以实时打印出 Redis 服务器接收到的所有命令,对于调试和监控非常有用。
    • 用途:实时监控服务器上的操作,便于调试和分析。
  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值