redis源代码编译、启动、停止
下载源代码 直接在官网https://redis.io/下载最新源代码,本文下载源代码 redis-5.0.0.tar.gz,解压后目录如下: 编译源代码 在目录中运行:
$make 程序编译完成后在src目录中会有这几个文件redis-cli、redis-server。在主目录中建一个bin文件夹,把如下文件拷贝到bin文件中
$cp redis.conf bin/
$cp src/redis-cli bin/
$cp src/redis-server bin/ 启动 到bin目录中,运
go随聊-反射reflect
reflect即反射。对于C++程序员来说比较陌生,对于Java或是C#程序员来说理解反射就易如反掌了。golang中为我们提供了reflect包用于反射。 package reflect 接下来就要介绍golang中的reflect package了。 reflect包有两个数据类型,一个是Type,一个是Value。 1.Type就是定义的类型的一个数据类型 2.Value是值的类型 反射是一种检查存储在接口变量中的<值,类型>对的机制,借助go反射包提供的reflect.TypeOf和r
go随聊-strconv包
Package strconv strconv是golang用来做数据类型转换的一个库 1.Append类型的方法 func AppendInt(dst []byte, i int64, base int) []byte
b1 := []byte("追加")
b1 = strconv.AppendInt(b1, -17, 10) //17用10进制方式加到后面
fmt.Println(string(b1))
b2 := []byte("追加")
b2 = strconv.AppendInt
go随聊-一个比较好用的json处理包(Jeffail/gabs)
本文介绍一个开源的json处理包 Gabs is a small utility for dealing with dynamic or unknown JSON structures in golang. It's pretty much just a helpful wrapper around the golang json.Marshal/json.Unmarshal behaviour and map[string]interface{} objects. It does nothi
go随聊-xml读取
XML的读取 假设本地xml文件config.xml
<?xml version="1.0" encoding="UTF-8"?>
<Message Version="1.0">
<Item key="Channel" value="gin"/>
<Item key="Filter" value="system,statistics,metric,facerecog,facesnap"/>
<Item key="LogLevel" value="trace" desc="日志等级
rpcx服务框架浅析1-角色说明
RPCX分布式服务框架主要致力于提供高性能和透明化的RPC远程服务调用。 RPCX服务框架角色 节点角色说明: Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。 Monitor: 统计服务的调用次数、调用时间、服务机器状态监控的监控中心。 调用关系说明: 1. 服务提供者在启动时,向注册中心注册自己提供的服务。 2. 服务消费者在启动时,向注册中心订阅自己所需的服务。 3. 注册中心返回服务提供者地址列表
ActiveX 网页播放控件
最近在搞视频监控项目,需要在网页上显示实时视频,于是网上找了很多资料研究如何在网页上播放视频,一种实现方式就是开发activex控件嵌入到网页中。如下我将介绍如何开发一个可以分屏播放视频的activex控件 (部分内容也是从网上抄的,感谢各位劳动人民:)) 创建ActiveX工程(使用VS2008) 1.选择“文件”菜单,然后选择“新建”->“项目”。 2.在“新建项目”对话框中,如下图1所示,选择“Visual C++”分类下的“MFC”。然后选择“MFC ActiveX控件”作为项目模板。
通讯录(一)(静态结构体)
结构体实现通讯录 我们通常使用的手机通讯录,可以实现增加,删除,查找,修改联系人信息这几个重要的版块,当然我们手机里存储的列表也是按照首字母的顺序排列的,非常的实用,那么我们今天来用C语言简单了实现一下通讯录。 增加联系人 void AddContact(pContact pc)
{
assert(pc);
if (pc->sz == DATA_MAX)
{
printf("通讯录已满,插入失败\n");
return;
}
通讯录(三)(文件存储)
动态通讯录 上篇博客介绍了动态通讯录,本篇继续进一步将动态通讯录存储在文件里 加载信息 void LoadContact(pContact pc)
{
FILE *pf = fopen("contact.dat.txt", "rb");
PeoInfo tmp = { 0 };
int i = 0;
if (pf == NULL)
{
perror("open file for read");
exit(EXIT_FAIL
双链表(双向带头循环链表)
双向链表 双向链表也叫双链表,是链表中的一种。它的每个数据结点中都有两个指针,分别指向直接前驱和直接后继,所以从链表的任意一个结点都可以很方便的访问到它的前驱结点和后继结点,一般我们都构造双向循环链表。 ## 带头结点和不带头结点 其实这个带头结点和不带头结点在单链表那篇博客中就应该提的,但是我放在这里,原因是,本篇主要介绍带头结点的双向循环链表。在这里结合例子介绍会更加清楚一些。 那么带头结点和不带头结点的区别在哪里呢? 带头结点:head-->p1-->p2-->p3-->p4....
判断单链表是否带环?若带环,求环的长度?求环的入口点?
判断单链表是否带环?若带环,求环的长度?求环的入口点? 这道题有三问,是否带环?环的长度?环的入口点? 1.单链表是否带环? 思路分析:怎么样才算带环呢?我们细想,如果一个单链表带环的话,那么它怎么走都走不出来的,而如果不带环的话,那么一定会走到NULL的。 设置快慢指针,刚开始都指向链表的起始位置,快指针一次走两步,慢指针一次走一步,如果两个指针相遇,则带环;若快指针走到NULL,则不带环。 代码: Node *IsCircleList(Node *list)
{
Node *fast =
判断链表相交,若相交,求交点。(假设链表可能带环)
首先我们分析,两个链表是否相交,是否带环,有以下几种情况: 求两个链表是否带环可以分成三个情况: 1.都不带环,可以转换成两个链表是否相交的问题。 2.一个带环,一个不带环。–>不相交 3.都带环: 分别求环的入口点 1.入口点相同–>一定相交在环外 2.入口点不同 分别求环的长度 1.长度不相等–>两个链表不相交 2.长度相等 一个在它的环入口点等着,另一个从他的环入口点出发,在长度内是否相遇,如果相遇–>相交在环内,不相
django rest framework框架(目录)
RESTful规范 在学习DRF之前 DRF的序列化 DRF的视图和路由 DRF的版本和认证 DRF的权限和频率 DRF的分页组件 DRF的解析器和渲染器
POJ 2299 Ultra QuickSort
Ultra-QuickSort | Time Limit: 7000MS | | Memory Limit: 65536K | | Total Submissions: 72479 | | Accepted: 27197 | Description In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct intege
Android中的算法
算法是思想的体现形式,常见的算法做一些总结 算法简介 算法—Algorithm 解题方案的准确而完整的描述,是一系列解决问题的清晰指令 特征 有穷性,确切性,输入项,输出项,可行性 算法运算要素 算术运算:加减乘除等运算 逻辑运算:或、且、非等运算 关系运算:大于、小于、等于、不等于等运算 数据传输:输入、输出、赋值等运算 算法优劣评定 时间复杂度,空间复杂度,正确性,可读性,健壮性 LogN 二分法查找最坏的情况:对于N个元素的数组,第一次查找未找到则舍弃 N/2 个元素,剩下 N/2,同理
今日推荐
周排行