php 动态链接,LevelDB(动态链接) + PHP扩展 安装
因为撤离SAE的原因,所以…
配置方法是先安装大于3.9版本以上的cmake,Debian 9默认apt安装的版本是3.7的,安装好cmake后克隆levelDB项目:https://github.com/google/leveldb,用下面命令配置LevelDB,目的是生成动态链接版本:
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON .
然后构建并安装:
cmake --build .
sudo make install
注意安装结果是so文件.
这样Level DB就已经完成了,Level DB比Redis好处是持久化,比SQL方便的地方就是简单,缺点就是数据多的时候,不好分类管理.另外Level DB单纯C++来说,也是很好访问的.
接着是PHP扩展,建议编译安装,因为系统带的非常老旧.我这里基于有php7.0以及php7.0-dev为例,安装这个服务,PHP扩展地址:https://github.com/reeze/php-leveldb
然后使用.configure => make => sudo make install就可以得到扩展模块了.
当然还要添加到php.ini配置里面.
最简单的测试.输出:string(5) “Value”
$db = new LevelDB("/tmp/test-db");
$db->set("Key", "Value");
var_dump($db->get("Key"));
$db->delete("Key");
最简单的C++例子.
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
leveldb::DB *db;
leveldb::Status s ;
leveldb::Options options;
options.create_if_missing = true;
string key = "username";
string value = "mypass";
string value_get;
leveldb::DB::Open(options, "/tmp/test-db", &db);
s = db->Put(leveldb::WriteOptions(), key, value);
s = db->Get(leveldb::ReadOptions(), key, &value_get);
cout << value_get << endl;
delete db;
return 0;
}
编译方法:
g++ -lleveldb -lpthread leveldb_test.cpp -I/usr/local/include/leveldb -Ofast -o leveldb_test
运行结果:
反复执行多次PHP脚本,这样就得到PHP的编译缓存,结果还是C语言快.(这不是废话吗,PHP的模块也是C写的.)
php 动态链接,LevelDB(动态链接) + PHP扩展 安装相关推荐
- 静态链接和动态链接优缺点
一.静态链接 静态链接 :不同的程序开发者和部门能够相对独立地开发和测试自己的程序模块,大大促进了程序开发效率. 优点: 代码装载速度快,执行速度略比动态链接库快: 只需保证在开发者的计算机中有正确的 ...
- linux gcc 静态编译,GCC 程序编译的静态链接和动态链接
(给Linux爱好者加星标,提升Linux技能)转自:Mr_Bluyee 在链接阶段中,所有对应于源文件的 .o 文件.'-l' 选项指定的库文件.无法识别的文件名(包括指定的.o目标文件和.a库文件 ...
- c++定义一个动态全局变量_静态链接与动态链接的宏观概述及微观详解
静态链接与动态链接的宏观概述及微观详解 第一部分 宏观概述 1. 静态链接 静态链接就是在程序运行前,链接器通过对象文件中包含的重定位表,完成所有重定位操作,并最终形成一个在运行时不需要再次进行依赖库 ...
- 一文彻底搞懂静态库和动态库,显示链接和隐式链接
定义:运行时库 静态库 动态库 运行时库:Unix中一个典型的运行时库例子就是libc,它包含标准的C函数,如,print(),exit()等等,用户能创建他们自己的运行库(在Windows中是DLL ...
- 静态链接与动态链接的区别
动态链接库.静态库.import库区别 动态链接库(Dynamic Linked Library): Windows为应用程序提供了丰富的函数调用,这些函数调用都包含在动态链接库中.其中有3个最重要的 ...
- 装入归档文件时出现了一个错误linux_静态链接与动态链接(Linux)
前言 上一篇分享了静态链接与动态链接的实验(Windows下).这一篇分享Linux下的笔记,同时对上一篇笔记做一个补充. 首先,我们把静态链接与动态链接做一个这样子的比喻: 把链接过程看做我们平时学 ...
- libcurl linux 静态链接库_GCC 程序编译的静态链接和动态链接
转自:Mr_Bluyee 在链接阶段中,所有对应于源文件的 .o 文件."-l" 选项指定的库文件.无法识别的文件名(包括指定的.o目标文件和.a库文件)按命令行中的顺序传递给链接 ...
- so链接及动态加载原理分析
http://www.ibm.com/developerworks/cn/linux/l-dynlink/ 程序的链接和装入及Linux下动态链接的实现 程序的链接和装入存在着多种方法,而如今最为流行 ...
- C语言 | Linux下的静态链接与动态链接
1024G 嵌入式资源大放送!包括但不限于C/C++.单片机.Linux等.关注微信公众号[嵌入式大杂烩],回复1024,即可免费获取! 前言 上一篇分享了静态链接与动态链接的实验(Windows): ...
最新文章
- 01_GIT基础、安装
- 2018年第九届蓝桥杯 - 省赛 - C/C++大学A组 - A. 分数
- W ndows找不到explorer,windows找不到explorer.exe的处理教程
- [转注自官网]Cocos2d-x Tutorial 4 - 如何放出子弹(Glede Edition for 2.0.3)
- 新型基础测绘与实景三维中国建设技术文件【2】基础地理实体分类、粒度及精度基本要求
- flashfxp链接Linux
- Linux下 python调用讯飞离线语音合成(tts)
- 二氧化硫填料吸收塔实验装置QY-HJGC06
- 基于51单片机霍尔自行车码表测速系统电路设计(毕业设计资料)
- 贝多芬交响曲全集(转)
- linux运行docker容器,添加映射端口
- 水面模拟--波动方程
- win10怎么打开电脑前面板耳机
- 【JavaSE】基础语法练习---减肥计划(流程控制)
- 华硕x470主板升级bios
- 易恢复15版EasyRecovery电脑数据恢复软件
- 模板笔记007 - 模板的声明、形参、实参
- 跨境电商平台-利润模型搭建
- Morn UI 学习总结
- C语言多线程创建(入门级)