redis 计数器 java_Redis介绍
什么是Redis
Redis是一种开源的内存数据结构,用作数据库、缓存和消息代理。它支持各种不同数据类型的存储,据我们了解,它主要用作缓存内容的一种方式,可以在以后快速高效地检索这些内容,从而减轻数据库服务器(如MySQL)的一些工作负载。
Redis并不是MySQL数据库的替代品,尽管Redis确实支持数据持久性,但它并不是真正设计成一个合适的数据库,并且可以与普通的更方便的风格的数据库并肩工作。
想了解更多Redis 点这里
我们要redis解决什么问题?
样例说明
示图如下 :
![](/assets/blank.gif)
(1-1 没有redis)
![](/assets/blank.gif)
图1-2 加了Redis
文字说明如下:
这有一个项目它由多个不同的组件组成。它由Web前端、API(Web前端使用)和java应用程序组成,我们称项目还拥有内部HTTP REST API,使用MySQL数据库后端进行数据存储和处理。在这个实验中,Web前端和Web API不是正在重要的,而是后端及它自己的内部REST API和它的数据处理。
该服务的流程是,用户通过发送加密过的API请求到REST API,API密钥在数据库中被查询,如果成功,则返回OK响应,然后用户可以继续向服务器发送POST数据,服务器通过引擎REST API再次接收这些数据,并进行处理和存储在数据库里。但是,当服务器收到请求数据时,需要检查用户上的一个计数器,以确保没有达到每月的配额,然后为收到的每个请求增加这个计数器。从数据处理方面来说,服务器要做大量的数据库工作。以下是可能需要的流程:
- 接收HTTP请求
- 以数据库为单位检查用户每月配额
- 如果每月配额低于阈值,则处理并将数据存储在数据库中
- 通过数据库增加用户每月配额计数器。
- 会话过期-无需执行任何操作
以上看起来不是什么大问题,但是如果我们每秒接收到几千个请求(这是可能的),那么服务器对于收到的每个请求,查询、存储和更新数据库将是一项大量的工作和开销,随着越来越多的用户请求,这可能会导致速度越来越慢。
考虑到这一点,我们考虑了使用Redis为用户存储计数器的思想,然后唯一需要数据库工作的就是存储处理好的数据,在用户会话到期时更新最终的请求计数。
因此,使用Redis的过程如下,同样包括初始化,在初始化阶段,我们将创建一个Redis密钥,它将是用户的某种标识符。- 接收HTTP请求
- 在Redis中查看用户月配额
- 如果低于每月报价,则将记录保存在数据库中
- redis中增加配额计数器
- 会话过期-将redis配额计数器刷新到数据库
正如上面看到的,步骤的数量是完全相同的,但是流程不是查询数据库,更新数据库中的配额,而是查询Redis,只在会话到期时使用Redis的计数器更新DB中的配额。测试性能对比
![](/assets/blank.gif)
![](/assets/blank.gif)
从上面的图表中可以看出,使用Redis存储和查询每个HTTP请求的配额,而不是在数据库中执行要快得多,事实上,在我们执行的每个脚本的5次运行中,我们看到完成的整个过程和将每条记录存储到DB中的时间都减少了51.4%。
从这个测试中,服务部分使用Redis可以明显提高服务器性能。
redis 计数器 java_Redis介绍相关推荐
- redis 计数器 java_Redis 的 8 大应用场景!
之前讲过Redis的介绍,及使用Redis带来的优势,这章整理了一下Redis的应用场景,也是非常重要的,学不学得好,能正常落地是关键. 下面一一来分析下Redis的应用场景都有哪些. 1.缓存 缓存 ...
- redis 计数器 java_Redis 实践汇总和使用建议。
↑ 点击上面 "时代Java"关注我们, 关注新技术,学习新知识! 一.概述 Redis是一个开源的.基于内存的结构化存储媒介,可用作数据库.缓存.消息中间件. 它支持string ...
- Redis 连接命令介绍
Redis 连接命令主要是用于连接 redis 服务. redis连接命令介绍 AUTH password 说明:AUTH命令用来检测给定的密码和配置文件中的密码是否相同 返回:如果密码匹配则返回OK ...
- [喵咪Redis]Redis安装与介绍
[喵咪Redis]Redis安装与介绍 前言 哈喽大家好啊,这次要来和大家一起来了解学习Redis的一系列技术,最终目的是搭建一个高可用redis集群自动负载灾备,那我们先从最基础的Redis的一些基 ...
- Memcached 与Redis缓存服务器介绍
Memcached缓存 简单介绍:memcached是高性能的分布式内存缓存服务器.一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度.提高可扩展性. Redis ...
- redis 启动_Redis介绍amp;安装amp;启动
Redis介绍安装 Redis是一个开源的key-value存储系统, 支持存储的value类型相对更多,string(字符串),list(链表),set(集合),zset(sorted set 有序 ...
- string获取 倒数 下标_Redis系列:Redis字符串(STRING)介绍
STRING APPEND 使用APPEND命令时,如果key已经存在,则会直接在value后追加值,如果key不存在,则会先创建一个value为空字符串的key,然后再追加: 127.0.0.1:6 ...
- Redis的配置文件介绍
目录 1.开头说明 2.INCLUDES 3.MODULES 4.NETWORK 5.GENERAL 6.SNAPSHOTTING 7.REPLICATION 8.SECURITY 9.CLIENTS ...
- [Redis6]Redis相关知识介绍
Redis介绍相关知识 端口6379 6379 是 "MERZ " 九宫格输入法对应的数字.Alessia Merz 是一位意大利舞女.女演员. Redis 作者 Antirez ...
最新文章
- 甲骨文全球大会•2010•北京议程
- Android平滑图片加载和缓存库Glide使用详解
- oracle 分析函数、GROUPING函数
- 史上最全Java面试266题:算法+缓存+TCP+JVM+搜索+分布式+数据库
- $lookup做关联表查询
- 你家猫砸东西是不是也专挑贵的砸?
- python函数的作用降低编程复杂度_Python函数式编程
- shell 提示符个性化设置
- 这六个问题,让物理学家寝食难安
- React 小案例 路由跳转
- Struts2的OGNL标签详解
- 前端监控和前端埋点方案设计
- redis缓存命中率计算
- matlab做nmf矩阵分解,进阶理解非负矩阵分解(NMF)
- 使用注册表reg文件修复git bash git gui 右键快捷方式
- Java8 新特性之流式数据处理
- 大数据的学习需要预先了解哪些基础知识?
- 【课堂笔记】模型制作流程
- 加油站的汽油是按什么分类的
- 学计算机电脑厚度23mm,轻薄机身兼具生产力!适合专业人士的轻薄笔记本电脑,了解下?...
热门文章
- ASP.NET的几个试题(《C#与.NET程序员面试宝典》)
- 找出Java进程中大量消耗CPU
- 从win到linux的小问题集锦(不断更新中)
- Android视频点播-边播边缓存-方案
- java冒泡排序 快速排序_Java必备-冒泡排序,选择排序,快速排序(纯代码实现)
- Try increasing heap size with java option '-Xmxlt;sizegt;’.
- 移动互联网实时视频通讯之视频采集
- 零基础编译ffmpeg到wasm
- android之数组排序
- 深度学习自学(二十四):华为Atlas人工智能计算平台