9.1 Redis概述

Redis起源

一种基于键值对的NoSQL数据库。
Redis值可以是由字符串,哈希,列表,集合,有序集合,位图,HyperLogLog,GEO等多种数据结构和算法组成,可以满足很多场景
Redis将数据存放在内存中,读写性能非常惊人。
Redis可以将内存的数据利用快照和日志的形式保存硬盘,保证内存中的数据不会“丢失”。
2008年,redis的作者在开发一个网站的时候,需要一个高性能的队列功能,MySQL无法满足,最终自己开发。
当前,Twitter,github,新浪微博,阿里巴巴,腾讯,百度,搜狐,优酷,美团小米,唯品会等都在使用Redis。

什么是图形数据库?
顾名思义,Graph database 就是用来存储图结构的数据库咯,和存储图片没有任何关系。上面也说过,没有图数据库,一般的关系型数据库也一样能存储图结构。但图数据库更适合用来解决复杂的关系问题的。

以下是百度百科上的摘抄:

图形数据库是NoSQL数据库的一种类型,它应用图形理论存储实体之间的关系信息。
图形数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。
最常见例子就是社会网络中人与人之间的关系。关系型数据库用于存储“关系型”数据的效果并不好,其查询复杂、缓慢、超出预期,而图形数据库的独特设计恰恰弥补了这个缺陷

Redis特性

速度快,读写能行10万/秒

1.主要原因:放在内存中

2.C语言实现

3.单线程架构,预防多线程可能出现的竞争问题

4.作者对源代码精心打磨,集性能和优雅于一身的开源代码

基于键值对的数据结构服务器

1.Redis全程是REmote Dictionary Server

2.主要提供了五种数据结构:字符串,哈希,列表,集合,有序集合

丰富的功能
1.提供键过期功能,可以用来实现缓存
2.提供发布订阅功能,可以用来实现消息系统
3.支持Lua脚本功能,可以利用Lua创造出新的Redis命令
4.提供简单的事务功能,能在一定程度上保证事务特性
5.提供了流水线(Pipeline)功能,这样客户端可以将一批命令一次性传到Redis,减少了网络的开销

简单稳定

1.源码很少,代码5w行

2.单线程模型(不仅服务端处理模型简单,而且客户端开发也很简单)

3.不需要以来操作系统中的类库,自己实现了事件处理的相关功能

4.很稳定,不会随便宕机

客户端语言多

主流开发语言都支持

持久化

1.RDB持久化是把当前进程数据生成快照保存到硬盘的过程,出发RDB持久过程分为手动触发和自动触发

2.AOF持久化:以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的。(主要解决数据持久化的实时性,也是持久化主流方式)

主从复制

Redis提供了复制功能

高可用和分布式

从2.8版本提供了高可用实现Redis Sentinel,它能够保证Redis节点的故障发现和故障自动转移

从3.0版本正式提供了分布式实现Redis Cluster,是Redis真正的分布式实现,提供了高可用,读写和容量的扩展性。

Redis使用场景

可以做:

缓存 、排行榜系统 、计数器应用 、社交网络 、消息队列系统

不可以做:

大数据VS小数据
大数据:硬件投入无底洞
小数据:适合内存
热数据和冷数据
热数据:频繁读写
冷数据:不经常修改

posted @ 2022-07-18 16:25  胖丿虎  阅读(25)  评论(0编辑  收藏  举报