企业架构LNMP学习笔记43

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 valuedecr 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.hqwc.cn/news/112300.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Linkerd实现流量管理:学习如何使用Linkerd的路由规则来实现流量的动态控制

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

I Pa?sWorD

2023icpc网络赛第一场 I 题意:题目给出只包含大小写字母,数字以及?的字符串,对于每一个小写字母,这一位字符既有可能是该小写字母,也有可能是该小写字母的对应大写字母,也就是该位的字符有两种可能&#x…

电商项目高级篇-01 elasticsearch

电商项目高级篇-01 elasticsearch 1、linux下安装elasticsearch和可视化工具 1、linux下安装elasticsearch和可视化工具 将安装好jdk1.8和tomcat的centos7下安装elasticsearch docker pull elasticsearch:7.4.2docker pull kibana:7.4.2##docker下安装软件需要配置挂载。方便…

基于matlab实现的多普勒脉冲雷达回波仿真

完整程序: clear all;clc;close all; fc3e9; %载波频率 PRF2000; Br5e6; %带宽 fs10*Br; %采样频率 Tp5e-6; %脉宽 KrBr/Tp; %频率变化率 c3e8; %光速 lamda…

MySQL查询表结构方法

MySQL查询数据库单个表结构代码 – 查询数据库表信息 SELECT​ COLUMN_NAME 列名,​ DATA_TYPE 字段类型,​ CHARACTER_MAXIMUM_LENGTH 长度,​ IS_NULLABLE 是否为空,​ IF(column_key PRI,Y,) 是否为主键,​ COLUMN_DEFAULT 默认值,​ COLUMN_COMMENT 备注FROM​ INFORMAT…

线性矩阵不等式(LMI)在控制理论中的应用

目录 (一)Matlab中的LMI处理工具包 (二)为什么LMI成为控制理论领域重要工具? (三)LMI在与Lyapunov不等式的关系 (1)线性矩阵不等式 (2)线性矩阵…

PHP8的类与对象的基本操作之成员方法-PHP8知识详解

成员方法是指在类中声明的函数。 在类中可以声明多个函数,所以对象中可以存在多个成员方法。类的成员方法可以通过关键字进行修饰,从而控制成员方法的商用权限。 函数和成员方法唯一的区别就是,函数实现的是某个独立的功能,而成…

电脑怎么取消磁盘分区?

有时候,我们的电脑会出现一个磁盘爆满,但另一个却空着,这时我们可以通过取消磁盘分区来进行调整,那么,这该怎么操作呢?下面我们就来了解一下。 磁盘管理取消磁盘分区 磁盘管理是Windows自带的磁盘管理工具…

【uniapp】Dcloud的uni手机号一键登录,具体实现及踩过的坑,调用uniCloud.getPhoneNumber(),uni.login()等

一键登录Dcloud官网请戳这里,感兴趣的可以看看官网,有很详细的示例,选择App一键登录,可以看到一些常用的概述 比如: 1、调用uni.login就能弹出一键登录的页面 2、一键登录的流程,可以选择先预登录uni.prelo…

Jmeter接口测试简易步骤

使用Jmeter接口测试 1、首先右键添加一个线程组,然后我们重命名接口测试 2、在线程组上添加一个Http默认请求,并配置服务器的IP地址端口等信息 3、在线程组中添加一个HTTP请求,这里我们重命名“增加信用卡账户信息接口” 4、配置接口请求信息…

服务网格和性能优化:介绍如何通过服务网格提高微服务架构的性能和可扩展性

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

【Git】03-GitHub

文章目录 1. GitHub核心功能2. GitHub搜索项目3. GitHub搭建个人博客4. 团队项目创建5. git工作流选择5.1 需要考虑的因素5.2 主干开发5.2 Git Flow5.3 GitHub Flow5.4 GitLab Flow(带生产分支)5.4 GitLab Flow(带环境分支)5.4 GitLab Flow(带发布分支) 6. 分支集成策略7. 启用…