自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员的自我修养

积跬步 积小流

  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 Redis源码解析:12AOF持久化

除了RDB持久化功能之外,Redis还提供了AOF(AppendOnly File)持久化功能。与RDB持久化通过保存数据库中的键值对来记录数据库状态不同,AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。与RDB持久化相比,AOF持久化可能丢失的数据更少,但是AOF持久化可能会降低Redis的性能。         写人AOF文件的所有命令都是以Redis的统一请求协议

2016-03-29 12:55:55 1348 1

原创 Redis源码解析:11RDB持久化

Redis的RDB持久化的相关功能主要是在src/rdb.c中实现的。RDB文件是具有一定编码格式的数据文件,因此src/rdb.c中大部分代码都是处理数据格式的问题。 一:RDB文件格式                 上图就是一个完整RDB文件的格式。         RDB文件的最开头是REDIS部分,这个部分的长度为5字节,保存着"REDIS"五个字符。通过这个字符

2016-03-19 21:55:19 2044

原创 02docker简单使用和配置(网络、存储和Hub)

四:网络1:命名容器        在各种docker命令中,可以通过名字中找到对应的容器。之前创建的容器都是由docker自动命名的,可以在docker  run中,通过--name参数指定容器的名字。比如:$ docker run -d -P --name web training/webapp python app.py$ docker ps -lCONTAINER ID IM

2016-03-19 19:20:38 1903

原创 01docker简单使用和配置(容器、镜像)

一:容器中运行简单应用程序1:hello  world        使用docker可以在容器中运行应用程序,使用docker run命令即可。比如下面的命令:$ docker run ubuntu /bin/echo 'Hello world'Hello world         docker run命令用于运行一个新的容器,ubuntu指定了该容器运行基于的镜像是Ubuntu

2016-03-19 18:54:04 4143 1

原创 00docker安装和简介

Docker是用于开发、装载和运行应用的开放平台。Docker项目的目标是实现轻量的操作系统级虚拟化解决方案,它提供了一种在容器中安全隔离地运行应用程序的方式。可以在宿主机上运行多个容器。        Docker的基础是Linux容器(LXC)等技术。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作Docker的容器就像操作一

2016-03-19 18:18:36 941

原创 64位Linux编译C代码,crt1.o文件格式不对的问题

今天在某台64位LInux下编译一个简单的hello world的C程序,报错:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../crt1.o: could not read symbols: File in wrong format查看该文件的格式,竟然是32位的:[@s366.zjm.db.d tmp]# file /usr/lib/g

2016-03-16 13:35:18 4709

原创 Redis源码解析:10scan类命令的实现

像keys或者smembers命令,需要遍历数据集合中的所有元素。在一个大的数据库中使用,可能会阻塞服务器较长的一段时间,造成性能问题,因此不适用与生产环境。        在Redis2.8.0中引入了scan类命令,可用于迭代整个数据库或者是哈希键、集合键和有序集合键这样的数据集合。        scan类命令支持增量式迭代,它们每次执行都只会返回少量元素,所以这些命令可以用于生产环

2016-03-13 22:03:30 3361

原创 Redis源码解析:09redis数据库实现(键值对操作、键超时功能、键空间通知)

本章对Redis服务器的数据库实现进行介绍,说明Redis数据库相关操作的实现,包括数据库中键值对的添加、删除、查看、更新等操作的实现;客户端切换数据库的实现;键超时相关功能的实现、键空间事件通知等。         以上这些功能,键空间事件通知是在src/notify.c中实现的,其他功能都是在src/db.c中实现的。          在redis.h中定义的redisServe

2016-03-13 21:57:54 1456

转载 逻辑卷管理LVM

LVM(Logical Volume Manager,逻辑卷管理),可以弹性调整分区大小。LVM将多个分区(或磁盘)整合在一起,让这些分区看起来就像是一个磁盘一样,将来可以新增或移除其他的分区到这个LVM 管理的“磁盘”当中。因此说LVM可以弹性调整分区的大小。 一:概念        LVM可以将几个分区(或磁盘),通过软件组合成为一块独立的“磁盘”(VG),然后将这块“磁盘”再

2016-03-11 22:06:33 2304

原创 磁盘、分区、文件系统

一:磁盘        物理上来说,硬盘主要由若干盘片、机械手臂、读写磁头与主轴马达组成。盘片表面涂以磁性介质,用以存储数据。每个盘片有两面,都可记录信息。而读写主要是透过在机械手臂上的读写磁头来达成。实际运作时,主轴马达让盘片转动,然后机械手臂可伸展使磁头到达指定的位置,在盘片上进行读写动作。每个盘片有两个面,每个面都有一个磁头,         逻辑上来说,又有磁道(track)、

2016-03-06 09:26:00 3955 1

原创 10Redis键空间通知(keyspace notifications)

Redis的键空间通知(keyspacenotifications)功能是自2.8.0版本开始加入的,客户端可以通过订阅/发布(Pub/Sub)机制,接收那些以某种方式改变了Redis数据空间的事件通知。比如:所有改变给定key的命令;所有经过lpush操作的key;所有在0号数据库中过期的key等等。         通知是通过Redis的订阅/发布机制发送的,因此,所有支持订阅/发布功能的

2016-03-05 14:33:29 13653

柔性数组成员

C99中引入了柔性数组成员的概念。C99 中,结构体中的最后一个元素允许是未知大小的数组,称为柔性数组成员(flexible array member),柔性数组成员前面必须至少还有一个其他成员,而且柔性数组成员必须是结构体的最后一个成员。一个包含柔性数组成员的结构体或(递归的)包含这样结构体的联合体,不能成为一个结构体的成员或数组的元素。

2018-09-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除