Redis 缓存中间件 缓存数据库
Redis 缓存中间件 缓存数据库
nginx web服务
PHP 转发动态请求
tomcat web页面也可以转发动态请求
springboot 自带tomcat
所有的数据库不支持高并发,一旦访问量激增,数据库很快就会崩溃。
Redis 非关系型数据库 nosql not only sql 不仅仅是sql
键值对形式:
key value
数据的类型不是定义好的类型。根据自定义,系统自动识别。
Redis简介:
Redis 远程字典服务器
键值对
开源的,C语言写的nosql数据库。
Redis基于内存运行,所有的数据不是保存到硬盘,而是内存。
持久化: 定期或者人为的把数据保存到硬盘上
安装步骤:
yum -y install gcc gcc-c++ make
tar -xf redis-5.0.7.tar.gz
cd redis-5.0.7/
ls
make -j 4
make PREFIX=/usr/local/redis install
cd utils/
./install_server.sh
/usr/local/redis/bin/redis-server
#4次回车,输入安装目录/usr/local/redis/bin/redis-server
ln -s /usr/local/redis/bin/* /usr/local/bin/
vim /etc/redis/6379.conf
#70行加入自己本机的地址
/etc/init.d/redis_6379 restart
/etc/init.d/redis_6379 status
netstat -antp | grep 6379
Redis的优点:
1、极高的读写速度,读速度可以达到11万次/秒,写入:81000次/秒
2、支持丰富的数据类型,键值对可以定义多种数据类型 string list hash set
3、支持数据持久化,内存当中的数据保存到磁盘
4、原子性,Redis所有操作都是原子性。要么都成功,要么都失败。
5、支持主从模式和高可用模式(哨兵模式),以及集群。
Redis基于内存运行的数据库,缓存是最常应用场景。
排行榜
计数器
存储关系
实时分析记录,日志系统。
缓存的概念:
缓存是一种用于存储临时数据副本的技术。
目的:提高访问速度和性能。
缓存通常位于数据的访问路径上,数据的必经之路。可以在不直接访问原始数据的情况下,可以之间获取数据。
缓存应用场景:
1、web登录缓存
2、数据库缓存
3、对象缓存(大数据应用)
redis-cli -h 192.168.11.146 -p 6379
-h 指定地址
-p 指定端口 (必须加端口)
-a 指定密码 (没密码可以不加)
redis-cli 命令行工具
redis server start stop restart 控制redis
redis-benchmark 检测redis在本机的运行效率
redis-check-aof 修复AOF持久化的文件
redis-check-rbd 修复RDB持久化的文件
redis-benchmark -h 192.168.11.147 -p 6379 -c 100 -n 100000
向redis的主机模拟发送100个并发连接,同时发送100000个请求测试redis-benchmark -h 192.168.11.146 -p 6379 -q -d 100
模拟存储100个数据包的性能测试
vim /etc/redis/6379.conf #主要配置文件
70 监听端口配置
89 保护模式
93 端口配置
172 日志路径 /var/log/redis_6379.log
/etc/init.d/redis_6379 restart #控制Redis状态
进入redis
[root@myslq4 utils]# redis-cli -h 192.168.11.147 -p 6379 -a 123456
CONFIG SET requirepass "" #无法重启故障解决
redis 数据库常用命令
1、基础数据类型:
string 字符串
list 列表型
hash 散列,键值对
set 集合,不重复的无序集合
zset 有序集合
创建键值对
set test1 10
获取数据
get test1
"10"
查看是否存在
(存在返回1,不存在返回0)
EXISTS test1
查看存在的键值对
keys *
查看类型
type test1
删除键值对
del test4
del test1 test2
修改键值对名称
RENAME test1 FBB
设置登录密码
CONFIG SET requirepass 123456
auth 123456CONFIG GET requirepassredis-cli -h 192.168.11.146 -p 6379 -a 123456 #登录
1、string类型
string是redis的基础类型 ,最大能存储512MB的数据。
数字,图片等等都是默认string类型。
追加
192.168.11.146:6379> append FBB niu
(integer) 3
STRLEN FBB 查看长度
(integer) 12
自增、自减
192.168.11.146:6379> incrby myket 10 自增 10 192.168.11.146:6379> decrby mykey 5 自减 5
设置生命周期
192.168.11.146:6379> SETEX mykey 15 hello 创建一个生命周期为15秒 key:mykey value:hello
移值到其他库
192.168.11.146:6379> get mykey
"10"
192.168.11.146:6379> move mykey 1 转移到目标库
(integer) 0
创建多个键值对
192.168.11.146:6379> mset test1 1 test2 2 test3 3 #创建多个键值对
OK
192.168.11.146:6379> keys *
1) "test3"
2) "test2"
3) "test1"
192.168.11.146:6379> mget test1 test2 test3
1) "1"
2) "2"
3) "3"
2、list类型
创建列表
192.168.11.146:6379> LPUSH mykey a b c d 创建列表
192.168.11.146:6379> LRANGE mykey 0 -1 查看列表全部信息
192.168.11.144:6379> LRANGE mykey 2 -1
1) "b"
2) "a"
192.168.11.144:6379> LRANGE mykey 1 2
1) "c"
2) "b"
插入数据
192.168.11.144:6379> LPUSHx mykey e #插入新的(只能插入已存在的列表)从头插
(integer) 5
删除
192.168.11.144:6379> LPOP mykey 从头删除
指定删除
192.168.11.144:6379> lrem mykey 2 a #删除两个a的值
查看元素数量
192.168.11.144:6379> llen mykey
(integer) 4
查看指定位置元素
192.168.11.144:6379> LPUSH mykey a b c d e f #创建表(倒序排序)
(integer) 6
192.168.11.144:6379> LINDEX mykey 4 #查看指定值的信息
"b"
192.168.11.144:6379> LSET mykey 5 10 #替换指定的值
192.168.11.144:6379> LINSERT mykey before 10 9 在10前加一个数值9
(integer) 7
192.168.11.144:6379> LINSERT mykey after 10 9 在10后面加一个数值9
(integer) 7192.168.11.144:6379> RPUSH mykey1 a b c d #正序排序
3、hash 散列
用来存储对象,对象类别和ID构成一个键名
hash存储的空间很小,占用的内存和持久化后的磁盘空间都很少
hash是一个键值对,包含多个对象和对象的值。
myhash就是一个hash值,一个hash值可以存42亿个键值对。
创建
192.168.11.144:6379> hset myhash id1 1 id1 2
添加hash值
192.168.11.144:6379> hsetnx myhash id3 3 (key不能和表中的重复)
(integer) 1
查看hash
192.168.11.144:6379> hset myhash qq 1 qq2 2 qq3 3
(integer) 3
192.168.11.144:6379> HGET myhash qq
"1"
192.168.11.144:6379> hmget myhash id1 id2 #查看多个值192.168.11.144:6379> hgetall myhash #查看所有的key对应的值192.168.11.144:6379> hkeys myhash #只看key192.168.11.144:6379> hvals myhash #只看对象的值(value)
删除hash
192.168.11.144:6379> hdel myhash qq
4、set 无序集合
无序集合中元素类型只能是string,无序集合当中元素具有唯一性,不允许重复
**应用场景:**可以使用set数据,追踪唯一性的数据,比如ip地址,或者根据客户的id区分不同客户购买的同一产品。
创建
192.168.11.144:6379> sadd myset a b b c
(integer) 3
查看集合元素
192.168.11.144:6379> smembers myset
1) "b"
2) "a"
3) "c"
添加值
192.168.11.144:6379> sadd myset a d e
(integer) 2
获取集合元素数量
192.168.11.144:6379> scard myset
(integer) 5
随机获取
192.168.11.144:6379> srandmember myset
删除
192.168.11.144:6379> spop myset 随机删除
"b"
192.168.11.144:6379> srem myset a 指定删除一个
(integer) 1
192.168.11.144:6379> srem myset e c 指定删除多个
(integer) 2
不同集合元素移动
192.168.11.144:6379> smove myset myset2 d 移出集合 移入集合 需要移出的值(integer) 1
5、 zset 有序集合
元素类型都是string类型,元素唯一,不能重复
每个元素都会关联一个doublel类型的分数score(表示权重),通过权重的大小进行排序,权重可以相同。
创建
192.168.11.144:6379> zadd myzet 1 "one"
(integer) 1
192.168.11.144:6379> zadd myzet 2 "two"
(integer) 1
192.168.11.144:6379> zadd myzet 3 "three" 4 "four"
(integer) 2
排序
192.168.11.144:6379> zrange myzet 0 -1 withscores #按照权重大小进行排序
1) "one"
2) "1"
3) "two"
4) "2"
5) "three"
6) "3"
7) "four"
8) "4"
查看
192.168.11.144:6379> zrange myzet 0 -1 #集合内对象
1) "one"
2) "two"
3) "three"
4) "four"
192.168.11.144:6379> zrangebyscore myzet 2 5 获取权重在2--5之间的值 2<=x<=5
1) "two"
2) "three"
3) "five"
4) "four"
删除
192.168.11.144:6379> zrem myzet "one"
(integer) 1
相关文章:
Redis 缓存中间件 缓存数据库
Redis 缓存中间件 缓存数据库 nginx web服务 PHP 转发动态请求 tomcat web页面也可以转发动态请求 springboot 自带tomcat 所有的数据库不支持高并发,一旦访问量激增,数据库很快就会崩溃。 Redis 非关系型数据库 nosql not only sql 不仅仅是sql 键值对…...
51、PHP 实现简单的快速排序
题目: PHP 实现简单的快速排序 描述: function simpleQuickSort(array $list) {$length count($list);if( $length < 1){return $list;}else{$pivot $list[0];$left_list array();$right_list array();for($i 1; $i < $length; $i){if($lis…...
如何应对机器视觉软件中时间篡改与许可绕过的挑战?
在机器视觉行业,软件许可绕过和时间篡改问题存在,这些行为对企业的正常运营和市场竞争力造成了严重威胁。机器视觉软件通常包含复杂的算法和大量的数据处理能力,广泛应用于制造、医疗和安防等领域。然而,未经授权的使用和人为篡改…...
python文件的读写
要在Python中读写文件,你可以使用以下方法: 1. 打开文件:使用open()函数打开文件,它接受两个参数:文件名和模式。模式可以是只读(r)、写入(w)、追加(a&#…...
2024下《网络工程师》案例简答题,刷这些就够了!
距离2024下半年软考已经越来越近了,不知道今年备考软考网络工程师的同学们开始准备了吗? 简答题一直是网工拿分的重点区域,对于许多考生来说,也往往是最具挑战性的部分。今天我就把那些重要的案例简答题类型整理汇总给大家&#x…...
Astro 实现TodoList网页应用案例
Astro 是一个现代化的静态站点生成器和前端框架,它具有独特的设计理念:岛屿架构。它允许开发人员使用组件化的方式构建内容优先的网站,将各种技术栈(如React、Vue、Svelte等)的组件无缝集成到同一个项目中。 1、创建项…...
计算机毕业设计Hadoop+Spark旅游景点可视化 旅游景点推荐系统 景区游客满意度预测与优化 Apriori算法 景区客流量预测 旅游大数据 景点规划
### 开题报告 **论文题目:** 基于Spark的旅游景点可视化系统的设计与实现 **研究背景与意义:** 随着旅游业的快速发展,人们对旅游信息的获取和处理需求越来越高。传统的旅游信息系统虽然能够提供静态的数据查询和展示功能,但在…...
MySQL存储
目录 1. MySQL存储引擎概述 2. 存储引擎的作用 3.存储引擎类型 4. 查看支持的存储引擎 6. InnoDB存储引擎 7. MyISAM与InnoDB的区别 8. 存储引擎的选择 9. 修改默认存储引擎 1. MySQL存储引擎概述 在MySQL中,数据通过不同的技术存储在文件(或内存…...
手势传感器 - 从零开始认识各种传感器【第十八期】
手势传感器|从零开始认识各种传感器 1、什么是手势传感器 手势传感器是一种能够感知人类手势或动作的传感器。它可以捕捉、识别和解释人类的手部动作或姿势,并将其转换成电信号或数字信号,通过识别人体的手势动作来实现与电子设备的交互,如控…...
【未来餐饮】 配送设置
一、创建门店 关键信息 1. 门店名字要有辨识度,尽量不和其他客户重名 2. 地址要具体到门牌号 3. 定位要和上面的地址一致 可以复制地址搜索地图,然后选择位置 二、创建配送模板 新建模板 填写模板 命名模板,勾上真省钱,然后保…...
移动式气象设备:灵活应对,精准监测的气象先锋
在气象监测领域,随着科技的进步和需求的多样化,移动式气象设备逐渐崭露头角,成为现代气象观测中不可或缺的一部分。这些设备以其灵活性高、部署迅速、监测精准的特点,广泛应用于应急响应、农业生产、户外探险、科研考察等多个领域…...
【AI落地应用实战】DAMODEL深度学习平台部署+本地调用ChatGLM-6B解决方案
ChatGLM-6B是由清华大学和智谱AI开源的一款对话语言模型,基于 General Language Model (GLM)架构,具有 62亿参数。该模型凭借其强大的语言理解和生成能力、轻量级的参数量以及开源的特性,已经成为在学术界和工业界引起了广泛关注。 本篇将介…...
英伟达开始引领下一波浪潮:物理AI
这可能会是AI技术形态的一个转折点,大模型的下一个形态,不再是人和模型一轮一轮的即时问答了。 当地时间 7 月 29 日,在美国丹佛举行的第 51 届 SIGGRAPH 计算机图形学会议上,英伟达创始人、CEO 黄仁勋与 Meta 创始人、CEO 马克・扎克伯格进…...
SQLServer设置端口
在SQL Server中设置端口是一个涉及多个步骤的过程,这些步骤旨在确保数据库服务器能够在新指定的端口上安全、高效地运行。以下是对SQL Server设置端口的详细阐述,包括默认端口、更改端口的步骤、验证更改以及相关的安全考虑。 一、SQL Server默认端口 …...
诊断技巧分享 | 用WPS500压力传感器测试空调压力波形?
最近收到咨询,问我们WPS500压力传感器能不能测汽车的空调压力波形?如果可以的话,应该怎么测? 是可以的。WPS500压力传感器的最大测试压力是34.5 bar,匹配对应的管子的接头,可以测试空调的动态波形。 要做这…...
W1R3S靶机全通详细教程
文章目录 w1r3s主机发现主机扫描 端口扫描tcp端口扫描UDP扫描漏洞扫描 攻击面分析FTP渗透匿名登录 web渗透目录爆破 cuppa cms文件包含漏洞getshell提权 w1r3s 引言 近些日子看红笔大佬的靶机精讲视频时,他的一句话让我感受颇深,很多视频在讲解时&…...
GitHub Revert Merge Commit的现象观察和对PR的思考
文章目录 前言Pull Request 为什么会是这样?Pull Request Branch的差异 ?Two Dot Diff和Three Dot Diff 老生常谈: Merge 和 Rebasegit mergegit rebase Revert Main分支中的一个Merge Commit现象描述解决方案: Revert Feature分支中的一个Merge Commi…...
使用JavaFx Fxml笔记
使用JavaFx Fxml实现账号密码登录 HelloApplication.java:package com.example.dr295cmonth7;import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.geometry.Insets; import javafx.scene.Parent; import javafx.scene.Scene; i…...
友盟U-APM——优秀的前端性能监控工具
在数字化转型浪潮的推动下,移动应用已成为企业连接用户、驱动业务增长的核心载体。然而,随着应用复杂度的日益提升,用户对于应用性能稳定性的期待也水涨船高。面对应用崩溃、卡顿、加载缓慢等频发问题,如何确保应用的流畅运行,成为产研团队亟待解决的关键挑战。在此背景下,友盟…...
人工智能与机器学习原理精解【10】
文章目录 数值优化基础理论线性模型基本形式特性应用学习算法 向量输入的二次函数的凸性概述二次函数的一般形式凸函数的定义分析二次函数的凸性注意 详细解释向量输入的二次函数的凸性分析一、二次函数的一般形式二、凸函数的定义三、二次函数的Hessian矩阵四、判断二次函数的…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
基于 HTTP 的单向流式通信协议SSE详解
SSE(Server-Sent Events)详解 🧠 什么是 SSE? SSE(Server-Sent Events) 是 HTML5 标准中定义的一种通信机制,它允许服务器主动将事件推送给客户端(浏览器)。与传统的 H…...
【工具教程】多个条形码识别用条码内容对图片重命名,批量PDF条形码识别后用条码内容批量改名,使用教程及注意事项
一、条形码识别改名使用教程 打开软件并选择处理模式:打开软件后,根据要处理的文件类型,选择 “图片识别模式” 或 “PDF 识别模式”。如果是处理包含条形码的 PDF 文件,就选择 “PDF 识别模式”;若是处理图片文件&…...
MLP实战二:MLP 实现图像数字多分类
任务 实战(二):MLP 实现图像多分类 基于 mnist 数据集,建立 mlp 模型,实现 0-9 数字的十分类 task: 1、实现 mnist 数据载入,可视化图形数字; 2、完成数据预处理:图像数据维度转换与…...
