【攻克Redis】Redis基本知识

简介: 【攻克Redis】Redis基本知识 发展史 Redis是一种基于键值对的Nosql数据库,Redis值可以是string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、 HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成 Redis会将所有数据都存放在内存 中,所以它的读写性能非常惊人。

【攻克Redis】Redis基本知识

发展史

  • Redis是一种基于键值对的Nosql数据库,Redis值可以是string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、 HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成
  • Redis会将所有数据都存放在内存 中,所以它的读写性能非常惊人。不仅如此,Redis还可以将内存的数据利 
    用快照和日志的形式保存到硬盘上,这样在发生类似断电或者机器故障的时 候,内存中的数据不会“丢失”
  • Redis提供了键过期、发布订阅、事务、流水线、Lua脚本等附加功能

特性

  1. 速度快(10万/秒) 
    • 所有数据存放在内存中
    • 用C语言实现,C语言“距离”操作系统更近
    • 单线程架构,防止多线程可能产生的问题
  2. 基于键值对的数据结构服务器 
    • 主要提供了5种数据结构:字符串、哈希、列表、集合、有序集合
    • 在字符串的基础之上演变 出了位图(Bitmaps)和HyperLogLog两种神奇的“数据结构”
    • Redis3.2版本中 加入有关GEO(地理信息定位)的功能
  3. 丰富的功能 
    • 提供了键过期功能,可以用来实现缓存。
    • 提供了发布订阅功能,可以用来实现消息系统。
    • 支持Lua脚本功能,可以利用Lua创造出新的Redis命令。
    • 提供了简单的事务功能,能在一定程度上保证事务特性。
    • 提供了流水线(Pipeline)功能,这样客户端能将一批命令一次性传到 Redis,减少了网络的开销。
  4. 简单稳定 
    • 源码代码量少
    • 单线程模型开发简单
    • 不需要依赖操作系统类库
  5. 客户端语言多 
    • Redis提供了简单的TCP通信协议,很多编程语言可以很方便地接入到 Redis
  6. 持久化 
    • 两种持久化方式:RDB和 AOF
  7. 主从复制 
    • Redis提供了复制功能,实现了多个相同数据的Redis副本(如图1-2所 示),复制功能是分布式Redis的基础
  8. 高可用和分布式

使用场景

可以做

  1. 缓存

    缓存提高访问速度,降低后端数据库压力,可以设置过期时间,对存储数据进行淘汰。

  2. 排行榜系统

    Redis提供了列表和有序集合数据结构,合理地使用这些数据结构可以很方便地构建各种排行榜系统。

  3. 计数器应用

    视频网站有播放数、电商网站有 浏览数,为了保证数据的实时性,每一次播放和浏览都要做加1的操作

  4. 社交网络

    赞/踩、粉丝、共同好友/喜好、推送、下拉刷新等

  5. 消息队列系统

    Redis提供了发布订阅功能和阻塞队列的功能,虽然和专业的消息队列比还不够足够强大,但是对于一般的消息队列功能基本可以满足。

不可以做

​ 每天产生的数据量特别大(上亿),redis存储经济成本笔记高;一些冷数据不适合存储。

原文地址  https://blog.csdn.net/zlt995768025/article/details/81872153
相关文章
|
存储 NoSQL 算法
高并发核心技术Redis系列(三)--------基本知识(下)
在我们做站点流量统计的时候一般会统计页面UV(独立访客:unique visitor)和PV(即页面浏览量:page view)。
326 0
高并发核心技术Redis系列(三)--------基本知识(下)
|
存储 NoSQL Java
|
存储 JSON NoSQL
Redis的基本知识
简单了解一下Redis
322 0
Redis的基本知识
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
8月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
807 25
|
缓存 NoSQL Java
Redis+Caffeine构建高性能二级缓存
大家好,我是摘星。今天为大家带来的是Redis+Caffeine构建高性能二级缓存,废话不多说直接开始~
1596 0
|
9月前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
360 1
Redis专题-实战篇二-商户查询缓存
|
8月前
|
缓存 运维 监控
Redis 7.0 高性能缓存架构设计与优化
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Redis 7.0高性能缓存架构,探索函数化编程、多层缓存、集群优化与分片消息系统,用代码在二进制星河中谱写极客诗篇。
1485 3
|
9月前
|
缓存 NoSQL 关系型数据库
Redis缓存和分布式锁
Redis 是一种高性能的键值存储系统,广泛用于缓存、消息队列和内存数据库。其典型应用包括缓解关系型数据库压力,通过缓存热点数据提高查询效率,支持高并发访问。此外,Redis 还可用于实现分布式锁,解决分布式系统中的资源竞争问题。文章还探讨了缓存的更新策略、缓存穿透与雪崩的解决方案,以及 Redlock 算法等关键技术。