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 @   ShineLe  阅读(13)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示