- 博客(19)
- 收藏
- 关注
原创 kong插件(三) --插件缓存
一旦定义了自定义实体,就可以使用PDK提供的kong.cache模块将它们缓存到代码的内存中。L1: Lua内存缓存,Nginx worker进程中的本地缓存。它可以保存任何类型的Lua值。L2:共享内存缓存(SHM) ,Nginx节点的本地缓存,但在所有worker之间共享。这只能保存标量值,因此需要对更复杂的类型(如Lua表)进行(反)序列化。当从数据库中获取数据时,它将同时存储在两个缓存中。如果同一个worker进程再次请求数据,它将从Lua内存缓存中检索先前反序列化的数据。
2024-09-09 00:56:05 1068
原创 kong框架的插件(二)
用户如果想要在插件中使用自定义实体,首先需要根据情况定义一个或者多个实体。数据格式为Lua Table,其中描述了自定义实体的相关信息,包括实体的字段名称、数据类型等。实体的配置项与插件配置中的配置项有些类似,但实体的配置项多了一些额外的元信息,例如实体的主键。实体配置项在daos模块中定义。
2024-08-28 23:34:09 1123
原创 kong框架的插件(一)
基本插件模块:pluginshandler模块:插件的核心模块。它提供了一组接口,需要用户自定义实现,其中每个方法都会在请求和连接生命周期中的指定时间点运行。schema模块:该模块定义了配置型的规则和格式,会对用户输入的数据进行校验。高级插件模块:插件模块是否必填描述api否其对应文件定义了插件在Admin API中暴露的端点。用户可以使用这些接口与插件中的实体数据进行交互。daos否其对应文件定义了插件需要用到的表结构。handler是。
2024-08-19 00:42:38 816
原创 sql语句关键词及基本规则
1.数据定义语言(DDL):用来创建或者删除存储数据用的数据库以及数据库中的表等对象。3.数据控制语言(DCL):用来确认或者取消对数据库中的数据进行的变更。ROLLBACK:取消对数据库中的数据进行的变更。COMMIT:确认对数据库中的数据进行的变更。ALERT: 修改数据库和表等对象的结构。2.数据操纵语言(DML): 用来查询或者变更表中的记录。DROP: 删除数据库和表等对象。INSERT:向表中插入新数据。SELECT:查询表中的数据。UPDATE:更新表中的数据。DELETE:删除表中的数据。
2024-04-28 01:00:30 229
原创 Go锁机制源码学习
RLock() 叫读锁。实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。学习过操作系统的都知道程序有临界区这个概念,临界区就是程序片段访问临界资源的那部分代码,临界区同一时刻只能有一个线程进行访问,其他线程需要访问的话必须等待资源空闲。Lock() 叫写锁,它是个绝对锁,就是说,如果一旦某人拿到了这个锁,别人就不能再获取此锁了。sync.Mutex 互斥锁,只有一种锁:Lock(),它是绝对锁,同一时间只能有一个锁。
2023-10-31 00:13:33 87 1
原创 GO语言匿名函数学习
一、匿名函数的定义函数字面量作为秒大师的函数变量,且在func关键字后后面没有函数的名称,它是一个表达式,它的值称为匿名函数。strings.Map(func(r rune) rune { return r + 1}, "HAL-9000")二、匿名函数的特点匿名函数可以获取外层函数的整个语法环境,因此匿名函数可以使用外层函数的变量 匿名函数不但能够获取外层函数的变量,还能修改变量值 匿名函数是引用类型且无法进行比较(无法比较,也就不能成为map的key) 函数变量类...
2021-08-10 23:34:29 351
原创 算法学习:二、归并排序
合并数组子方法的伪代码:数组A[p..q] and A[q+1..r];total number is (r - p +1).MERGE(A, p, q, r)n1 = q - p + 1n2 = r - qlet L[1..n1 + 1] and R[1..n2 + 1] be new arraysfor i = 1 to n1 L[i] = A[p + i -1]fo...
2020-03-15 23:49:05 146
原创 排序算法:一、插入排序
插入排序对少量元素的排序是很有效的。伪代码:INSERTION-SORT(A)for j = 2 to A.length key = a[j] // Insert A[j] into the sorted sequence A[1..j - 1] while i > 0 and A[i] > key A[i+1] = A[i] ...
2020-03-15 21:37:33 160
原创 python学习:类(一)
一、类的定义:class Dog(): """一次模拟小狗的简单尝试""" def __init__(self,name,age): """初始化属性name和age""" self.name = name self.age = age def sit(self): """模拟小狗被命令是蹲下"""...
2020-02-17 22:56:10 186
原创 python学习:函数(二)
函数保存在模块中:将函数存储在被称为 模块 的独立文件中,再将模块导入 到主程序中。 import 语句允许在当前运行的程序文件中使用模块中的代码。一、导入整个模块:模块 是扩展名为.py的文件, 包含要导入到程序中的代码。import pizzapizza.make_pizza(16, 'pepperoni')pizza.make_pizza(12, 'mushroom...
2020-02-17 21:27:02 188
原创 python学习:函数(一)
举例:def greet_user(): """显示简单的问候语""" print("Hello!")greet_user()一、函数定义:1、使用关键字:def 来定义一个一个python函数。2、函数名: greet_user为函数名。在python中使用下划线 ”_" 来分离不同的单词,而不是使用java中常用的驼峰表示法。3、函数参数:...
2020-02-17 00:08:20 271
原创 3. 无重复字符的最长子串(middle)
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"w...
2019-09-18 00:44:58 175
原创 2.两数相加(medium)
给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&...
2019-09-17 00:29:51 168
原创 1.两数之和(easy)
题目:Given an array of integers, returnindicesof the two numbers such that they add up to a specific target.You may assume that each input would haveexactlyone solution, and you may not use the...
2019-09-16 00:27:53 134
转载 人类的群星闪耀时
在叱咤风云的命运降临的伟大瞬间,市民的一切美德------小心、顺从、勤勉、谨慎,都无济于事,叱咤风云的命运始终只需要天才,并且将他造就成不朽的人物。叱咤风云的命运鄙视地把畏首畏尾的人拒之门外。叱咤风云的命运-----这世上的另一位神,只愿意用热烈的双臂把勇敢者高高举起,送上英雄们的天堂。 ...
2019-06-19 12:30:06 590
转载 贺新郎 ·辛弃疾
甚矣吾衰矣。怅平生、交游零落,只今馀几。白发空垂三千丈,一笑人间万事。问何物、能令公喜。我见青山多妩媚,料青山、见我应如是。情与貌,略相似。 一尊搔首东窗里。想渊明、停云诗就,此时风味。江左沈酣求名者,岂识浊醪妙理。回首叫、云飞风起。不恨古人吾不见,恨古人、不见吾狂耳。知我者,二三子。...
2019-06-19 12:21:58 336
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人