一、安装和运行
memcache 安装
1 | sudo apt install libevent libevent-dev |
memcache 帮助
1 | memcached -h |
memcache 安装
1 | sudo apt install libevent libevent-dev |
memcache 帮助
1 | memcached -h |
本文使用的内核版本为:v2.6.12
我们一般称键值对数组为映射,也称为哈希。一般查找的时间复杂度可以低至常数级别。在高频次的查询场景中,有较为优异的性能。关于映射的性质,我们不过多讨论,本文主要看看 Linux 中映射的实现,本文以 Linux 2.6.12 版本为例。
Linux 实现的映射,并不是一个通用的映射。他的目标是:映射一个唯一数(UID)到一个指针。
Linux 提供了结构体 idr 用来完成这一目标。如下:
1 | struct idr_layer { |
队列是一种定义了 FIFO 先进先出的结构。Linux 内核的队列实现在 kfifo.c
中。本文以 Linux 2.6.12
版本来进行讨论。
我们还是老样子,从底层实现看起,然后再来总结规律、适用场景。
创建队列的实现如下:
1 | struct kfifo *kfifo_init(unsigned char *buffer, unsigned int size, |
链表是一种存放和操作可变数量元素(常称为节点)的数据结构。他们在内存中无须占有连续内存块,内存块之间通过指针连接。本文探讨一下 Linux 中链表的实现。
Linux 内核中,不是将数据结构塞入链表,而是将链表节点塞入数据结构。
比如我们之前定义链表,一般是有了结构体,然后在此结构体中增加 “前向指针” 或者“ 后向指针”,以达到链表将节点串联起来的目的。而 Linux 内核中,是将链表节点塞入数据结构体中,以达到同样的效果。
链表代码在头文件:<linux/include/linux/list.h>
中声明,数据结构如下:
1 | struct list_head { |
我们都知道使用原始的JDBC在操作数据库是比较麻烦的,所以Spring为了提高开发的效率,顺带着就把JDBC封装、改造了一番,而JdbcTemplate就是Spring对原始JDBC封装之后提供的一个操作数据库的工具类。
我们可以借助JdbcTemplate来完成所有数据库操作,比如:增删改查等。
JdbcTemplate主要提供以下三种类型的方法: