【攻克Redis】Redis基本知识-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

【攻克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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: