Redis学习笔记

这篇具有很好参考价值的文章主要介绍了Redis学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Redis学习笔记

一 、Redis简介
1.1 什么是Redis

Redis 是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库*,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存可持久化的日志型,Key-Value数据库,并提供多种语言的API。

BSD是"Berkeley Software Distribution"的缩写,意思是“伯克利软件发型版本”。
BSD开源协议是一个给予使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件在发布。BSD代码鼓励代码共享,但需要尊重代码作者的著作权。
BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,一次是对商业集成很友好的协议。
1.2 NoSQL
NoSQL,泛指非关系型的数据库,NoSQL即Not-only SQL,它可以作为关系型数据库的良好补充。随着互谅网web2.0网站的兴起,非关系型的数据库现在成为了一个及其热门的新领域,非关系型数据库产品的发展非常迅速。

传统数据库暴露很多难以克服的问题,如下问题:

1、High performance - 对数据库高并发读写的需求。

2、Huge Storage - 对海量数据的高效存储和访问的需求。

3、High Scalability && High Availability - 对数据库的高可扩展性和高课用性的需求。
1.3 NoSQL的类别

键值(Key-Value)存储数据库

  这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。
key/value模型对于IT系统涞水的优势在于简单,已部署。但是如果DBA只对部分值进行查询或者更新的时候,key/value显示的效率低下。
相关产品 : Redis,Tokyo Cabinet
典型应用 : 内存缓存,主要用于处理大量数据的高访问负载。
数据模型 : 一系列键值对
优势 : 快速查询
劣势 : 存储的数据缺少结构化

列存储数据库

这部分数据库通常是用来对分布式存储的海量数据。键仍然存在,但是他们的特点是指向了多个列。这些列是由列家族来安排的。
相关产品 : HBase 、Riak
典型应用 : 分布式的文件系统
数据模型 : 以列簇式存储,将同一列数据存在一起
优势 : 查找速度快,可扩展性强,更容易进行分布式扩展
劣势 : 功能相对于局限

文档型数据库

文档型数据库:该类型的数据库模型是版本化的文档,半结构化的文档一特定的格式存储,比如JSON。文档数据库可以看做键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。
相关产品:MOngoDB
典型应用 : web应用
数据模型 : 一系列键值对
优势 : 数据结构要求不严格
劣势 : 查询性能不高,而且缺乏统一的查询语言
1.4 总结:

NoSQL 数据库在一下的这几种情况下比较适用 :

1、数据模型比较简单;

2、需要灵活更前的IT系统;

3、对数据库性能要求较高;

4、不需要高度的数据一致性;

5、对于给定key,比较容易映射复杂的环境;

1.5 Redis 描述

​ Redis是完全开源免费的,遵守BSD协议,是一个高性能(NoSQL)的(key-value)数据库,Redis是一个开源的使用ANSI C语言编写,支持网络,可基于内存亦可持久化的日志型,Key-Value数据库,并提供多种语言的API。

1.6 Redis的特点
  • 性能极高 - Redis读写的熟读110000次/s,写的速度是81000次/s。
  • 丰富的数据类型 - Redis支持的类型String, Hash 、List 、Set 及 Ordered Set数据类型操作。
  • 原子性 - Redis的所有操作都是原子性的,意思就是要么成功,要么失败。单个操作时原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
  • 丰富的特性 - Redis还支持publis/subscribe,通知,key过期等等特性。
  • 高速读写 ,redis使用自己实现的分离器,代码量很短,没有使用lock(MySQL),因此效率非常高。

Redis是一个简单的,高效的,分布式的,基于内存的缓存工具。

架设好服务器后,通过网络连接(类似数据库),提供Key-Value缓存服务。

简单,是Redis突出的特色。

简单可以保证核心功能的稳定和优异。

1.7 Redis的应用场景

可以作为数据库,缓存,热点数据(经常别查询,但是不经常被修改或者删除的数据)和消息中间件等大部分功能。

Redis常用的场景示例如下:

1、缓存
   缓存现在几乎是所有大中型网站都在用的必杀技,合理利用缓存提升网站的访问速度,还能大大降低数据库的访问压力。Redis提供了键过期功能,也提供了灵活的键淘汰策略,所以,现在Redis用在缓存的场合非常多。
2、排行榜
   Redis提供的有序集合数据类结构能够实现葛洪复杂的排行榜应用。
3、计数器
   什么是计数器,,视频网站的播放量等等,每次浏览+1,并发量高时如果每次都请求数据库操作无疑是中挑战和压力。Redis提供的incr命令来实现计数器功能,内存操作,性能非常好,非常是用于这些技术场景。
4、分布式会话
   集群模式下,在应用不多的情况下一般使用容日自带的session复制功能就能够满足,当应用相对复杂的系统中,一般都会搭建Redis等内存数据库为中心的session服务,session不在由容器管理,而是有session服务及内存数据管理。
5、分布式锁
   在很多互联网公司中都是用来分布式技术,分布式技术带来的技术挑战是对同一个资源的并发访问,如全局ID,减库存,秒杀等场景,并发量不发的场景可以使用数据库的悲观锁,乐观锁来实现,但是在并发高的场合中,利用数据库锁来控制资源的并发访问是不太理想的,大大影响了数据库的性能。可以利用Redis的setnx功能来编写分布式的锁,如果设置返回1,说明获取所成功,否则获取锁失败,实际应用中药考虑的细节要更多。
6、社交网络
   点赞、踩、关注/被关注,共同好友等是社交网站的基本功能,社交网站的访问量通常老说比较大,而且传统的关系数据库不适合这种类型的数据,Redis提供的哈希,集合等数据结构能很方便的实现这些功能。
7、最新列表
   Redis列表结构,LPUSH可以在列表头部插入一个内容ID作为关键字,LTRIM可以用来限制列表的数量,这样列表永远为N个ID。无需查询最新的列表,直接根据ID 去到对应的内容也即可。
8、消息系统
   消息对队列是网站比用中间件,如ActiveMQ,RabbitMQ,Kafaka等流行的消息队列中间件,主要用于业务解耦,流量削峰及异步处理试试性低的业务。Redis提供了发布/订阅及阻塞队列功能,能实现一个简单的消息队列系统。另外,这个不能喝专业的消息中间件相比。
1.8 Redis总结

优势

  • 性能极高 - Redis读写的熟读110000次/s,写的速度是81000次/s。
  • 丰富的数据类型 - Redis支持的类型String, Hash 、List 、Set 及 Ordered Set数据类型操作。
  • 原子性 - Redis的所有操作都是原子性的,意思就是要么成功,要么失败。单个操作时原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
  • 丰富的特性 - Redis还支持publis/subscribe,通知,key过期等等特性。
  • 高速读写 ,redis使用自己实现的分离器,代码量很短,没有使用lock(MySQL),因此效率非常高。

缺点文章来源地址https://www.toymoban.com/news/detail-821483.html

  • 持久化。 Redis直接将数据存储到内存中,要将数据保存到磁盘上,Redis可以使用两种方式实现持久化过程。定时快照(snapshot):每个一端时间将整个数据库写到磁盘上,每次均是写全部数据,代价非常高。第二种方式基于语句追加(aof):只追踪变化的数据,但是追加的log可能过大,同时所有的操作均重新执行一遍,回复速度慢
  • 耗内存 、占用内存过高。

到了这里,关于Redis学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis数据结构学习笔记

    图文主要参考小林Coding的图解redis数据结构 除了它是内存数据库,使得所有的操作都在内存上进⾏之外,还有⼀个重要因素,它实现的数据结构,使 得我们对数据进⾏增删查改操作时,Redis 能⾼效的处理。 :::tips redisDb 结构 ,表示 Redis 数据库的结构,结构体⾥存放了指向了

    2024年02月02日
    浏览(38)
  • Redis7学习笔记01

    ①、适合对象,从小白到熟手,一套全包圆 ②、Redis专题-大厂面试题,含100道+ ③、Redis专题-真实需求生产真实案例 ④、Redis7新特性 ①、面试题 ②、专题 Remote Dictionary Server(远程字典服务)是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的Key-Value数据库提供了丰

    2024年02月15日
    浏览(37)
  • Redis核心技术与实战-学习笔记(十五):消息队列(Redis的解决方案)

    消息队列: 分布式系统 必备的一个 基础软件 ,能支持 组件通信消息 的 快速读写 Redis本身 支持数据的快速访问 ,满足 消息队列的读写性能需求 消息队列存取消息的过程 在分布式系统中,两个组件要基于消息队列进行通信,一个组件就会把要处理的数据以消息的形式传递

    2023年04月09日
    浏览(41)
  • redis协议与异步方式学习笔记

    发布者与注册者之间是1:n的关系,类似于观察者模式。 下图中两个客户端监听 “n1”, 第三个客户端向\\\"n1\\\"发布消息: 还可以是监听 n1.*, 用命令psubscibe 实际使用redis的时候,会与redis server建立两条连接,一条专门订阅(一直处于等待状态,相当于阻塞了),另一条用来处理

    2024年02月10日
    浏览(24)
  • redis存储原理与数据模型学习笔记

    redis-server 命令处理 网络事件的监听 bio close file 异步关闭大文件 bio aof fsync 异步 aof 刷盘 bio lazy free 异步清理大块内存 io thd * io 多线程 emalloc bg thd jemalloc 后台线程 单线程为什么快? server.h dict.h 注意 dictEntry **ht_table[2]; 怎么从key定位到value? 哈希原理: 数组 + hash(key) % 数组长

    2024年02月10日
    浏览(37)
  • 微服务学习笔记--高级篇--(Redis哨兵)

    哨兵的作用和原理 搭建哨兵集群 RedisTemplate的哨兵模式 哨兵的作用 Redis提供了哨兵(Sentinel)机制来实现主从集群的自动故障恢复。哨兵的结构和作用如下: 监控:Sentinel会不断检查master和slave是否按预期工作 自动故障恢复:如果master故障,Sentinel会将一个slave提升为master。当故

    2024年02月08日
    浏览(28)
  • 黑马Redis学习笔记 (基础篇+实战篇)

    1.1.1结构化和非结构化 (1) SQL关系性数据库 ​ 传统关系型数据库是结构化数据,每一张表都有严格的约束信息:字段名、字段数据类型、字段约束等等信息,插入的数据必须遵守这些约束 (2) NoSql数据库 NoSql对数据库格式没有严格约束,往往形式松散,自由。 可以是key-value,可

    2024年02月09日
    浏览(44)
  • 【Redis学习笔记01】快速入门(含安装教程)

    先来看门见山的给出 Redis 的概念: Redis:是一种基于内存的高性能K-V键值型NoSQL数据库 Redis官网:https://redis.io/ 1.1 初识NoSQL 想必大家都对关系型数据库更为熟悉!如MySQL、Oracle、SQL Server都是比较常见的关系型数据库,所谓关系型数据库主要以二维表作为数据结构进行存储,但

    2024年01月22日
    浏览(42)
  • Redis学习笔记02(主从同步,哨兵,哨兵集群)

    redis具有高可靠性:1.数据尽量减少丢失(AOF和RDB来保障) 2.服务尽量减少中断.第二点通过增加冗余副本来保障。 读写分离:  减少保障数据一致性的开销。修改操作只会在主库上进行。 同步过程  1.psync包括了主库runID和复制进度offset。第一次采用全量复制协议(主库bgsav

    2024年02月02日
    浏览(76)
  • 《Redis 核心技术与实战》课程学习笔记(三)

    Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。 多线程的开销 我们刚开始增加线程数时,系统吞吐率

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包