内存耗尽后Redis会发生什么
前言作为一台服务器来说,内存并不是无限的,所以总会存在内存耗尽的情况,那么当 Redis 服务器的内存耗尽后,如果继续执行请求命令,Redis 会如何处理呢?
内存回收使用Redis 服务时,很多情况下某些键值对只会在特定的时间内有效,为了防止这种类型的数据一直占有内存,我们可以给键值对设置有效期。Redis 中可以通过 4 个独立的命令来给一个键设置过期时间:
expire key ttl:将 key 值的过期时间设置为 ttl 秒。
pexpire key ttl:将 key 值的过期时间设置为 ttl 毫秒。
expireat key timestamp:将 key 值的过期时间设置为指定的 timestamp 秒数。
pexpireat key timestamp:将 key 值的过期时间设置为指定的 timestamp 毫秒数。
PS:不管使用哪一个命令,最终 Redis 底层都是使用 pexpireat 命令来实现的。另外,set 等命令也可以设置 key 的同时加上过期时间,这样可以保证设值和设过期时间的原子性。
设置了有效期后,可以通过 ttl 和 pttl 两个命 ...
Java虚拟机
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
window.location.href='http://victorfengming.gitee.io/about_jvm/';
Gitbook文档索引
Created by gitbook
脚本
shell
makefile
前端
html
...
文件索引
classware
axios
data_algorithm
java_about
java_design_pattern
java_interview_1
kuang_redis
scala
sgg_MyBatis
sgg_Nginx
sgg_Redis
sgg_Juc
sgg_regex
sgg_rabbitmq
sgg_shell
sgg_Spring
sgg_SpringMVC
sgg_ZooKeeper
sgg_elasticsearch
webpack_1
_hadoop
01_hadoop_start
02_hadoop_intro
03_hadoop_hdfs
04_hadoop_MapReduce
05_hadoop_Yarn
06_hadoop_manual
07_hadoop_source
Linux命令行与shell脚本编程大全_第3版_布鲁姆_P606
alibaba_architecture_design-high_performanc_mysql
interviewApacheDubbo
dubbo服务相关 ...
Mustache简介
Mustache 是一款经典的前端模板引擎,在前后端分离的技术架构下面,前端模板引擎是一种可以被考虑的技术选型,随着重型框架(AngularJS、ReactJS、Vue)的流行,前端的模板技术已经成为了某种形式上的标配,Mustache 的价值在于其稳定和经典:
主页:https://github.com/janl/mustache.js/文档:https://mustache.github.io/mustache.5.html
Mustache 在使用的时候,会在页面上出现 { { person} } 这样的标签,载入的时候回显示出来,然后立即被替换掉,这个对于页面的呈现是不够友好的,这是我在使用的过程中遇到的一个痛点。
Mustache 功能非常经典,这里就能全部罗列出来:
变量{ { person} }
带有HTML的变量{ { { person} } }
循环{ { #persons} }……{ { /persons} }
数组循环的时候可以用.作为下标{ “musketeers”: [“Athos”, “Aramis”, “Porthos” ...
商密算法SM2、SM3、SM4的用途和原理
原文链接: https://yq.aliyun.com/articles/705759
商密算法SM2、SM3、SM4的用途和原理北阙青云
安全
算法
函数
加密
商密算法
SM2算法
国产商密算法是我国自主研发、具有自主知识产权的一系列密码算法,具有较高安全性,由国家密码局公开并大力推广。我国公开的国产商用密码算法包括SM1、SM2、SM3、SM4、SM7、SM9及祖冲之算法,其中SM2、SM3、SM4最为常用,用于对应替代RSA、DES、3DES、SHA等国际通用密码算法体系。
SM1对称密码SM1 算法是分组密码算法,分组长度为128位,密钥长度都为 128 比特,算法安全保密强度及相关软硬件实现性能与 AES 相当,算法不公开,仅以IP核的形式存在于芯片中。采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。
SM2椭圆曲线公钥密码算法SM2算法就是ECC椭圆曲线密码机制,但在签名、密钥交换方面不同于ECDSA、ECDH等国际标准, ...
spring笔记01
Spring 简介Spring框架由Rod Johnson开发,2004年发布了 Spring框架的第一版.Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率.
Spring总结起来优点如下:
低侵入式设计,代码的污染极低.
独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺.
Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦.
Spring的AOP支持允许将一些通用任务如安全,事务,日志等进行集中式管理,从而提供了更好的复用.
Spring的高度开发性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部.
Spring框架的组成结构图如下所示:
Spring 的核心机制管理Bean程序主要是通过Spring容器来访问容器中的Bean,ApplicationContext是Spring容器最常用的接口,该接口如下两个实现类:
ClassPathXMLApplic ...
cucumber介绍
cucumber介绍cucumber 是一个支持BDD(behavior Driven Development),即行为驱动开发的自动化测试框架.在进行单元测试或者集成测试之前,事先将测试的步骤和验证信息用通用的语言(英语)定义好,使得测试的步骤、单元测试和集成测试每一步执行的目的能被非开发人员读懂,并且写单元测设和集成测试的人员可以根据事先写好的框架进行代码的编写,达到行为驱动开发的目的.
cucumber框架的搭建
将cucumber插件导入eclipse中,此处同其他插件导入方法相同,不作说明.
新建Java工程,将cucumber所需要的jar包导入Java工程中(最好新建一个文件夹,将jar包放到该文件夹下).
通过Build Path添加刚导入的JARs
新建用来定义步骤的feature格式的文件,新建的feature格式文件会自动填写模板文件,具体使用方法后续说明.同上,最好将其放在特定的文件夹 里,本例Feature文件夹.
将被测试的包导入Java工程中,本例测试一个简单的Calculator类.
新建一个包,包名必须为test.java或main.java 否则后续 ...
cucumber自动化测试
cucumber自动化测试cucumber是一款测试工具.可用于大多数主流编程语言.比如Java,JS,Ruby,C++,lua,Android,kotlin,C#/F#,PHP,Python,Go,groovy,scala等等.
其中,Java,JS,Ruby的代码托管在cucumber下.官方建议选择与生产代码相同的平台或编程语言的实现.
本文主要是Java平台下的介绍教程.使用方法非常简单,创建一个mvn工程,在pom.xml文件引入一下依赖即可.
123456<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java8</artifactId> <version>4.2.0</version> <scope>test</scope></dependency>
也可根据骨架创建cucumber项目.
创建一个空的cucumber项目我们首先使用cucumbe ...
ansible简介
#ansibleAnsible是一款简单的运维自动化工具,只需要使用ssh协议连接就可以来进行系统管理,自动化执行命令,部署等任务。
Ansible的特点1、ansible不需要单独安装客户端,也不需要启动任何服务2、ansible是python中的一套完整的自动化执行任务模块3、ansible playbook 采用yaml配置,对于自动化任务执行过一目了然Ansible组成结构Ansible是Ansible的命令工具,核心执行工具;一次性或临时执行的操作都是通过该命令执行。
Playbook任务剧本(又称任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,yaml格式。
InventoryAnsible管理主机的清单,默认是/etc/ansible/hosts文件。
ModulesAnsible执行命令的功能模块,Ansible2.3版本为止,共有1039个模块。还可以自定义模块。
Plugins插件,模块功能的补充,常有连接类型插件,循环插件,变量插件,过滤插件,插件功能用的较少。#####API提供给第三方程序调用的应用程序编程接口。
安装ansib ...