Redis数据库
Redis简介
Redis数据库是目前NoSQL数据库中应用最广泛的数据库,其最大特征是实现数据的分布式缓存,随着集群设计的逐步普及,很多的开发过程中为了提高程序的处理性能,所以往往会使用缓存,但是在集群环境就必须考虑到其它服务也需要相应的数据,所以才需要建立分布式缓存。
Redis是由意大利人Salvatore Sanfileppo(网名:antirez)开发的一款内存高速缓存数据库;
Redis全称是:Remote Dictionary Server(远程数据服务),软件使用C语言编写;
Redis是开源的,使用key-value存储可用于构建高性能,可扩展的Web应用程序的解决方案;
支持丰富的数据类型,如:string,list,set,zset(sorted set),hash,GEO,Stream(据说性能可以与Kafka性能相当)
Redis特点
> 异常迅速:Redis响应速度快,美妙可以执行大约110000设置的操作,81000个/美妙的读取操作;
>支持丰富的数据类型:Redis支持列表,集合,可排序集合,哈希等数据类型;
>原子性操作:所有的Redis的操作都是源自,可以确保两个客户同时访问Redis服务器得到的是更新后的最新值;
>MultiUtility工具: 可以在缓存,消息传递队列中使用(Redis原生支持发布/订阅),在程序应用中:Web应用程序会话, 网站羊肉面点击数等任和短站的数据。
Redis与Memcached比较
>Redis支持比Memcached更多的数据类型;
>Redis支持主从结构(Master-Slave)可以实现数据备份;
>Redis支持数据持久化,可以将数据保存到磁盘中,重启时数据依然可用。
Memcached最大特点时所有的数据都保存在内存中,如果实例关闭。所有的数据都会消失。
Redis雪崩:
使用Redis主要是解决SQL数据库查询性能慢的问题,所以在实际的项目中会是首先将需要的数据保存在Redis数据库中,这样就可以避免SQL数据库的频发查询,但是如果按照则正常的设计思路来讲,如果此时的Redis没有数据则会向SQL数据库查询,呢吗如果此时Redis在高并发访问下已经瘫痪了(无法使用),最终的结果是是所有的用户请求都会发送给SQL数据库,那么首先SQL数据库会甭哭,随后连带数据层和业务层也会雪崩,最终影响到WEB端,导致整个程序不能运行。
造成雪崩因素有:网络因素,单实例Redis问题,所以实际项目之中就可以考虑进行Redis集群开发,因为Redis官方没有提供Redis集群的设计方案,所以世界上Redis的集群设计方案非常多。
数据会优先从Redis加载,如果无法加载,则会从传统数据库加载。
原文地址:https://www.cnblogs.com/fcitx/p/11041942.html
- Linux环境下JDK/Eclipse一键安装脚本
- (31) 剖析Arrays / 计算机程序的思维逻辑
- 应用自然语言处理(NLP)解码电影
- 不引入新的数组,实现数组元素交换位置函数
- (30) 剖析StringBuilder / 计算机程序的思维逻辑
- Java初始化顺序
- ConcurrentHashMap使用示例
- (40) 剖析HashMap / 计算机程序的思维逻辑
- nginx配置https(亲测可用)
- linux中无 conio.h的解决办法
- 运用适配器模式应对项目中的变化
- 开车啦!小爬虫抓取今日头条街拍美女图
- C语言中随机数相关问题
- 算法决策兴起:人工智能时代的若干伦理问题及策略|AI观察
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- DO,DTO,VO,POJO 你知道吗?
- Python 爬虫进阶必备 | AES-CBC 的 Pyhon 实现要怎么写?给代码就完事了
- Babel:下一代Javascript语法编译器
- 如何定位及优化SQL语句的性能问题
- Java线程安全如何进行原子操作,一致性的最佳实践
- 冒泡排序
- 现有CDP-DC集群启用Auto-TLS
- 打卡001/这是一篇软文
- 技术角 | 在CentOS 8上使用Elastic Stack: Elasticsearch/Kibana 7.8部署与认证配置
- 技术角 | 解决ES SQL命令行启动报错 ./x-pack-env: No such file or directory
- Linux常用命令归类总结
- 潜藏在PHP安全的边缘——浅谈PHP反序列化漏洞
- 对比MySQL,学会在Pandas中实现SQL的常用操作
- 【Python基础】科学计算库Scipy简易入门
- 【DL】规范化:你确定了解我吗?