2023-08-24:(1)初识Redis

1、Redis介绍

Redis是一种基于K-V的NoSQL数据库,它的V可以是string、hash、list、set、zset等多种数据结构,因此Redis可以满足很多应用场景。

Redis会把所有数据都存放在内存中,因此其读写性能惊人。

Redis会把内存数据以快照、日志形式存放到硬盘上,这样在发生断电、机器故障时,内存中的数据不会丢失。

几个网站:

[1] http://redis.io
[2] http://antirez.com
[3] https://github.com/antirez/redis

2、Redis特性

1)速度快

原因:①数据存放于内存;②用C编写,离OS更近;③单线程架构,避免了多线程竞争;④作者对Redis源代码的打磨

2)基于K-V的数据结构

Redis中的V不仅可以是string,还可以是具体的数据结构,便于在多种应用场景中的开发,同时可以提高开发效率。

3)丰富的功能

①键过期功能——缓存

②发布订阅——消息系统

③Lua脚本——用Lua创造新的Redis命令

④简单事务功能——事务特性

⑤流水线——C端可以将一批命令一次性传输到Redis,减少了网络开销

4)简单稳定

①源码很少——普通的开发运维人员可以“吃透”

②单线程模型——简单的S端处理模型和C端开发

③不依赖OS中的类库,自己实现了事件处理的相关功能。

5)C端语言多

Redis提供了简单的TCP通信协议,许多编程语言可以很方便接入Redis,并且Redis受各大社区和公司认可,因此有很多支持的客户端语言——Java、PHP、Python、C、C++、Nodejs等几乎所有主流编程语言。

6)持久化

数据存放在内存是不安全的,Redis提供了两种持久化方案:RDB、AOF,将数据从内存保存到硬盘。

 

7)主从复制

多个具有相同数据的Redis副本,复制功能是分布式Redis的基础。

8)高可用和分布式

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

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

3、Redis能做什么

1)缓存

Redis提供了键值过期时间设置,还提供了灵活控制最大内存和内存溢出后的淘汰策略

2)排行榜系统

网站上的各种排行榜——热度、时间排行榜。

Redis提供了列表list和有序集合zset,方便构建各种排行榜系统

3)计数器

视频网站播放数、电商网站浏览数。

需要保证实时性,每次浏览、播放都要+1,并发很大的情况下对于传统关系型数据是一种挑战。

Redis天然支持计数功能且计数性能很好。

4)社交网站

支持赞/踩、粉丝、共同好友/喜好、推送、下拉刷新等是社交网站的必备功能,这些网站还有比较大的访问量。

Redis可以较容易实现。

5)消息队列

Redis提供了发布订阅、阻塞队列的功能,对于一般的消息队列功能基本可以满足。

4、Redis不能做什么

1)海量数据

Redis存放于内存中,因此保存的数据量不能太大,比如每天几亿的用户行为数据。

2)冷数据

热数据:操作频繁的数据;冷数据则相反。

如果将冷数据放在Redis中,是对内存的一种浪费。将热数据放在Redis中可以加速读写,减轻后端存储的负载。

5、Redis安装

Linux:安装部署Redis

6、Redis启停

Redis:redis启停 

 

posted @ 2023-08-25 09:51  ShineLe  阅读(26)  评论(0)    收藏  举报