企业架构LNMP学习笔记43

news2024/12/22 19:43:12

memcached的使用:

命令行连接和操作:

telnet连接使用:

memcached默认使用启动服务占用tcp 11211端口,可以通过telnet进行连接使用。

安装telnet进行连接:

连接成功,敲击多次,如果看到error,即连接成功。

显示error的原因,没有输入命令,所以memcached服务器提示error。

退出使用quit命令。

存储命令:

set

set命令用于将value数据值存储在指定的key(键)中。

如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用。

概念有点类似python中的字典,这个还是很好理解的。

正常我们只要记住set就可以了。

语法:

set key flag exptime bytes

value

多一位少一位都不行。该多少个字节就多少个字节。

对值进行更换:

get

add命令:

add命令用于将value值存储在指定的key键中。

如果add的key已经存在,则不会更新数据(过期的key会更新),之前的值仍保持相同,并且您将获得响应NOT_STORED。

replace:

replace命令用于替换已存在的key(键)的value(数据值)。

如果key不存在,则替换失败,并且您将获得响应NOT_STORED。

存在则替换,不存在则啥也不干。

append:

append命令用于向已存在的key键的value值后面追加数据:

prepend:

prepend命令用于向已存在的key键的value值前面追加数据。

我们正常只要记住set命令就可以了。

删除命令:

delete:

delete命令用于删除已存在的key(值)。

语法:

delete key

flush all:

flush_all 命令用于清理缓存中的所有key/value键值对。

该命令提供了一个可选参数time,用于制定的时间后,正常是s,执行清理缓存的操作。

flush_all(time)

flush_all在业务生产环境上千万不能执行这个操作。如果执行,可能会造成所有缓存清空不存在,所有数据请求都直接到了数据库服务器,造成数据库服务器压力瞬间变大。造成数据库宕机。

另外rm -rf 命令,这个里面的f要少加,这个要特别注意的。

另外数据库的drop命令也是要特别注意的。谨慎操作。

这个数据对公司是业务价值的。一定要有备份。不要嫌麻烦。做好服务的备份,保护数据库的安全。

数据库的数据安全。

查找和计算命令:

get命令:

get命令获取存取在key(键)中的value(数据值),如果key不存在,则返回空。

get key1 key2 key3

语法:incr(相加)/decr(相减)

计数器:每做一次操作+1

incr和decr命令用于对已存在的key键的数字值进行自增或自减操作。

incr和decr命令操作的数据必须是十进制的32位无符号整数。

incr key value

decr key value

统计状态命令:

语法:stats

stats命令用于返回统计信息例如PID(进程号)、版本号、连接数等。

stats
STAT pid 4051
STAT uptime 9979
STAT time 1694689746
STAT version 1.6.21
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 0.813517
STAT rusage_system 0.542345
STAT max_connections 1024
STAT curr_connections 2
STAT total_connections 4
STAT rejected_connections 0
STAT connection_structures 3
STAT response_obj_oom 0
STAT response_obj_count 1
STAT response_obj_bytes 32768
STAT read_buf_count 4
STAT read_buf_bytes 65536
STAT read_buf_bytes_free 16384
STAT read_buf_oom 0
STAT reserved_fds 20
STAT cmd_get 22
STAT cmd_set 16
STAT cmd_flush 2
STAT cmd_touch 0
STAT cmd_meta 0
STAT get_hits 16
STAT get_misses 6
STAT get_expired 0
STAT get_flushed 0
STAT delete_misses 0
STAT delete_hits 1
STAT incr_misses 1
STAT incr_hits 5
STAT decr_misses 0
STAT decr_hits 3
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT store_too_large 0
STAT store_no_memory 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 881
STAT bytes_written 1128
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT slab_reassign_rescues 0
STAT slab_reassign_chunk_rescues 0
STAT slab_reassign_evictions_nomem 0
STAT slab_reassign_inline_reclaim 0
STAT slab_reassign_busy_items 0
STAT slab_reassign_busy_deletes 0
STAT slab_reassign_running 0
STAT slabs_moved 0
STAT lru_crawler_running 0
STAT lru_crawler_starts 18
STAT lru_maintainer_juggles 19937
STAT malloc_fails 0
STAT log_worker_dropped 0
STAT log_worker_written 0
STAT log_watcher_skipped 0
STAT log_watcher_sent 0
STAT log_watchers 0
STAT unexpected_napi_ids 0
STAT round_robin_fallback 0
STAT bytes 129
STAT curr_items 2
STAT total_items 13
STAT slab_global_page_pool 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evicted_active 0
STAT evictions 0
STAT reclaimed 3
STAT crawler_reclaimed 0
STAT crawler_items_checked 29
STAT lrutail_reflocked 4
STAT moves_to_cold 17
STAT moves_to_warm 4
STAT moves_within_lru 0
STAT direct_reclaims 0
STAT lru_bumps_dropped 0
END

stats参数参考:

pid: memcache服务器进程ID

uptime:服务器已运行秒数

time:服务器当前Unix时间戳

启动时间: time-uptime

version:memcached版本

pointer_size:操作系统指针大小

rusage_user:进程累计用户时间

rusage_system:进程累计系统时间

curr_connections:当前连接数量

total_connections:Memcached运行以来连接总数

connection_structures:Memcached分配的连接结构数量

cmd_get:get命令请求次数

cmd_set:set命令请求次数

cmd_flush:flush命令请求次数

get_hits:get命令命中次数 

get_misses:get命令未命中次数

delete_misses:delete命令未命中次数

delete_hits:delete命令命中次数

incr_misses:incr命令未命中次数

incr_hits:incr命令命中次数

decr_misses:decr命令未命中次数

decr_hits:decr命令命中次数

cas_misses:cas命令未命中次数

cas_hits:cas命令命中次数

cas_badval:使用擦拭次数

auth_cmds:认证命令处理的次数

auth_errors:认证失败数目

bytes_read:读取总字节数

bytes_written:发送总字节数

limit_maxbytes:分配的内存总大小(字节)

accepting_conns:服务器是否达到过最大连接(0/1)

listen_disabled_num:失效的监听数

threads:当前线程数

conn_yields:连接操作主动放弃数目

bytes:当前存储占用的字节数

curr_items:当前存储的数据总数

total_items:启动以来存储的数据总数

evictions:LRU释放的对象数目

reclaimed:已过期的数据条目来存储新数据的数目

缓存命中率:命中数(get获取到数据)/ 获取次数(get的次数)

get_hits/cmd_get, 如果命中率低,业务代码缓存有问题,命中率为0,说明缓存没有起到作用。

 缓存预热。

命中率越高,说明我们的缓存做的越好。

缓存穿透:

访问的数据,数据库都不存在的数据,每次都不能够生成缓存,每次请求都直接访问数据库,穿透了缓存,缓存没有起到作用。数据库压力没有得到缓解。

解决方案:数据库查不到的,也做一个空缓存。

一般情况是受到攻击了。直接把对方的IP封掉。deny IP地址。

缓存雪崩:

缓存具有失效时间,如果缓存失效时间都是一样,本来应该请求缓存,但是因为缓存失效了,全部请求到了数据库,数据库压力剧增,可能造成数据库宕机,进而造成系统奔溃。

解决方案:设置缓存的失效时间均匀分布。

最终目的是降低数据库压力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1010280.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux常用命令字典篇

Linux命令 1. 翻页查看文件 less [-N] 文件名:可以向后翻页,也可以向前翻页,-N表示显示行号 more 文件名:仅可以向后翻页 2. 端口占用信息查看 netstat -tunlp | grep 端口号:查看端口号对应的信息 lsof i: 端口号…

Marin说PCB之封装设计系列---(02)--异形焊盘的封装设计总结

每天下班回家看电视本来是一件很美好的事情,可是正当我磕着瓜子看着异人之下的时候,手机突然响起来了,我以为是我们组哪个同事找我呢。一接电话居然是我的老朋友陈世美陈总,江湖人称少妇杀手。给我打电话主要是说他最近遇到一个异…

vite和webpack的区别

vite和webpack的区别 1、前言2、Webpack2.1 Webpack简述2.2 Webpack常用插件 3、Vite3.1 Vite简述3.2 Vite插件推荐 4、区别4.1 开发模式不同4.2 打包效率不同4.3 插件生态不同4.4 配置复杂度不同4.5 热更新机制不同 5、总结 1、前言 Webpack和Vite是现代前端开发中非常重要的…

线性代数的本质(九)——二次型与合同

文章目录 二次型与合同二次型与标准型二次型的分类度量矩阵与合同 二次型与合同 二次型与标准型 Grant:二次型研究的是二次曲面在不同基下的坐标变换 由解析几何的知识,我们了解到二次函数的一次项和常数项只是对函数图像进行平移,并不会改变…

HSRP(热备份路由选择协议)的概念,原理与配置实验

作者:Insist-- 个人主页:insist--个人主页 梦想从未散场,传奇永不落幕,持续更新优质网络知识、Python知识、Linux知识以及各种小技巧,愿你我共同在CSDN进步 目录 一、了解HSRP协议 1. 什么是HSRP协议 2、HSRP协议的…

2023年主流固定资管理系统的特征

随着科技的不断发展,固定资产管理系统也在不断演进,以满足企业日益增长的管理需求。在2023年,主流固定资产管理系统将呈现出一些重要的特征,包括RFID功能、低代码平台功能和云计算功能。易点易动固定资产管理系统正是结合了这些特…

UWB芯片DW3000之PDOA测向实现源码

介绍 DW3000芯片的双天线端口特性可以测量无线输入信号的相位。当与天线响应的信息相结合时,这些信息可以用来帮助确定到达的方向和传输的位置。 根据设备的不同,将有一个或两个天线端口。具有两个天线端口的设备称为PDoA部件,而其他是非PDoA部件(见表1)。当涉及到到达相位…

算法分析与设计编程题 贪心算法

活动安排问题 题目描述 解题代码 vector<bool> greedySelector(vector<vector<int>>& intervals) {int n intervals.size();// 将活动区间按结束时间的从小到大排序auto cmp [](vector<int>& interval1, vector<int>& interval2…

(文末赠书)我为什么推荐应该人手一本《人月神话》

能点进来的朋友&#xff0c;说明你肯定是计算机工作的朋友或者对这本书正在仔细琢磨着的朋友。 文章目录 1、人人都会编程的时代&#xff0c;我们如何留存?2、小故事说明项目管理着为什么必看这本书3、如何评价《人月神话&#xff1a;纪念典藏版》4、本书的目录&#xff08;好…

模方新建工程时,显示空三与模型坐标系不一致怎么解决

答:检查空三xml与模型的metadata.xml的坐标系是否一致&#xff0c;metadata文件是否有在data目录外面。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.0新增单体化建模模块&#xff0c;…

无人机+三维实景建模助力古建筑保护,传承历史记忆

历史文化建筑&#xff0c;承载着过去各个时代的文化记忆。无论是保存还是修缮古建筑&#xff0c;都需要将其基本信息进行数字化建档&#xff0c;为修缮提供精准参考。根据住建部的要求&#xff0c;从2020年开始到2022年&#xff0c;全国需完成历史建筑100%测绘及系统录入工作&a…

OPENCV实现人类识别(包括眼睛、鼻子、嘴巴)

人脸识别步骤 # -*- coding:utf-8 -*- """ 作者:794919561 日期:2023/9/14 """ import cv2 import numpy as np # load xml face_xml = cv2.CascadeClassifier(F:\\learnOpenCV\\opencv\\data\\haarcascades\\haarcascade_frontalface_defaul…

计算机提示vcomp120.dll丢失怎样修复,vcomp120.dll丢失的4个修复方法分享

随着科技的飞速发展&#xff0c;计算机已经成为了人们日常生活和工作中不可或缺的重要工具。在享受计算机带来的便利的同时&#xff0c;我们也会遇到各种各样的问题&#xff0c;其中计算机丢失vcomp120.dll文件就是一种常见的困扰。vcomp120.dll是 Visual C Redistributable 的…

【操作系统】聊聊协程为什么可以支撑高并发服务

在实际的业务开发中&#xff0c;比如针对一个业务流程&#xff0c;调用三方&#xff0c;然后存储数据&#xff0c;从oss上获取数据。其实都是进行的同步调用&#xff0c;说白了就是A完成之后&#xff0c;B在继续完成。如果整个过程中A、B、C 分别耗时100、300、200毫秒。那么整…

vue基础知识十:Vue中组件和插件有什么区别?

一、组件是什么 回顾以前对组件的定义&#xff1a; 组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念&#xff08;组件&#xff09;来实现开发的模式&#xff0c;在Vue中每一个.vue文件都可以视为一个组件 组件的优势 降低整个系统的耦合度&#xff0c;在保持接口不…

【VSCode】自动生成Jupyter(ipynb)文件的目录

下载插件 一键生成 然后就出来咯&#xff5e;

关于HTTP协议的概述

HTTP 的报文大概分为三大部分。第一部分是请求行&#xff0c;第二部分是请求的首部&#xff0c;第三部分才是请求的正文实体。 POST 往往是用来创建一个资源的&#xff0c;而 PUT 往往是用来修改一个资源的。 Accept-Charset&#xff0c;表示客户端可以接受的字符集。防止传过…

Python工程师Java之路(p)Module和Package

文章目录 1、Python的Module和Package2、Java的Module和Package2.1、Module2.1.1、分模块开发意义2.1.2、模块的调用 2.2、Package Module通常译作模块&#xff0c;Package通常译作包 1、Python的Module和Package Python模块&#xff08;Module&#xff09;&#xff1a;1个以.…

模拟实现C语言--strlen函数

模拟实现C语言–strlen函数 模拟实现C语言--strlen函数一、strlen函数是什么&#xff1f;二、strlen函数的模拟实现2.1 计数器方式实现strlen函数2.2 不创建临时变量计数器方式实现strlen函数2.3 指针-指针方式实现strlen函数 三、strlen函数的返回类型 一、strlen函数是什么&a…

vue-esign 签字组件

1、安装 npm install vue-esign --save 2、引入 // main.js import vueEsign from vue-esign Vue.use(vueEsign) 3、参数 属性说明类型默认值width画布宽度&#xff0c;即导出图片的宽度Number800height画布高度&#xff0c;即导出图片的高度Number300lineWidth画笔粗细Nu…