1,初识redis

Redis简介

Redis(REmote Dictionary Server)是一种基于键值对(key-value)的NoSQL数据库,Redis的值可以由字符串string,哈希hash,列表list,集合set,有序集合zset,位图Bitmaps,HyperLogLog,地理信息位置GEO等多种数据结构和算法组成,Redis会将所有数据都存放在内存中,所以读写性能非常惊人,Redis还可以将内存的数据利用快照和日志的形式保存到硬盘上,除了上述功能以外,Redis还提供了键过期,发布订阅,事务,流水线,Lua脚本等附加功能。

Redis特性

  • 速度快
    正常情况下,Redis执行命令速度非常快。原因如下:
    1,所有数据都存放在内存中,而各层硬件执行速度:寄存器 > 一级Cache > 二级Cache > 内存 > 硬盘
    2,使用C语言实现,程序"距离"操作系统更近,执行速度相对更快
    3,使用单线程架构,预防了多线程可能产生的竞争问题
  • 基于键值对的数据结构服务器
    与很多键值对数据库不同的是,Redis中的值不仅可以是字符串,而且还可以是具体的数据结构,主要提供五种数据结构:字符串string,哈希hash,列表list,集合set,有序集合zset;同时在字符串的基础上演变出位图Bitmaps,HyperLogLog,地理信息位置GEO
  • 丰富的功能
    1,提供键过期功能,实现缓存
    2,发布订阅功能,实现消息系统
    3,支持Lua脚本功能
    4,简单的事务功能,一定程度上保证事务特性
    5,流水线Pipeline,将一批命令一次传给Redis,减少网络开销
  • 简单稳定
    源码相对较少;Redis使用单线程模型,不仅使得Redis服务端处理模型变得简单,而且也使得客户端开发变得简单;Redis不依赖于操作系统的类库
  • 客户端语言多
    Redis提供简单的TCP通信协议,客户端支持语言多,例如:java,go,php,python,c,c++,nodejs等
  • 持久化
    提供两种持久化方式:RDB和AOF,将内存数据保存到硬盘中,保证数据的可持久性。
  • 主从复制
    实现多个相同数据的Redis副本,复制功能是分布式Redis的基础
  • 高可用和分布式
    Redis Sentinel模式保证Redis节点的故障发现和故障自动转移,以及Redis Cluster模式,是Redis真正的分布式实现,提供了高可用,读写和容量的扩展性

Redis的使用场景

  • 缓存
    合理使用缓存可以加速数据的访问速度,降低后端数据源的压力。Redis提供键值过期时间设置,也提供了灵活控制最大内存和内存溢出后的淘汰策略。
  • 排行榜系统
    Redis提供列表和有序结合数据结构,合理使用这些数据结构方便构建各种排行榜系统
  • 计数器应用
    计数器为了保证数据的实时性,并发量大对于传统关系型数据性能较大挑战。Redis天然支持计数功能且计数性能非常好
  • 社交网络
    赞,分析,共同好友,推送,下拉刷新等,由于社交网络访问量通常比较大,传统的关系型数据库不太合适保存这些类型的数据,Redis提供的数据结构相对比较容易实现这些功能。
  • 消息队列
    提供发布订阅功能和阻塞队列功能,但是和专业的消息队列比还是不够强大

Redis基本避坑

1,大规模数据,由于数据放在内存,经济成本较高
2,一般热数据放在Redis中,冷数据不放在Redis中
3,单线程模型,如果执行keys *这些操作,在一个写操作量很大上配置自动保存RDB,可能造成线上故障

posted @   seek1110  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示