Linux编程
文章平均质量分 86
long12310225
多年Linux,Windows平台开发
展开
-
Thrift-0.11.0在Centos7下安装
安装centos需要的扩展yum install -y automake libtool flex bison pkgconfig gcc-c++ libevent-devel zlib-devel python-devel ruby-devel openssl-devel安装boost,本地源码安装最安全wget http://sourceforge.net/projects/boost/fil...原创 2018-04-19 20:19:20 · 2364 阅读 · 0 评论 -
rapidjson简单使用
#include#include#include#include#include "rapidjson/document.h"#include "rapidjson/prettywriter.h"#include "rapidjson/stringbuffer.h"using namespace std;#define CONFIG_JSON "{\"Par原创 2017-08-24 09:20:51 · 1073 阅读 · 0 评论 -
Linux遍历INI
头文件:#include编译选项:-lminiiniINIFile ini;FILE* f=fopen(AUTHINI,"a+");if(f){ fseek(f, 0L, SEEK_END); if(ftell(f) { fclose(f); return; }}原创 2017-08-24 09:18:59 · 233 阅读 · 0 评论 -
MD5
md5_2使用方法:MD5 md5(szbuf);std::string result = md5.md5();原创 2017-08-24 09:13:30 · 370 阅读 · 0 评论 -
DES加密解密
使用方法#define DES_KEY "mykey"char bitsCiphertextAnyLength[32768];char hexCiphertextAnyLength[16384];char szPlaintextData[8192];char szCiphertextData[8192];DES2 * my_des =原创 2017-08-24 09:10:00 · 766 阅读 · 0 评论 -
Linux C++动态库so调用实例
test.cpp#include "stdio.h"extern "C"{ void print();}void print(){ printf("songbai");}class Lynn{ public: Lynn();};编译:原创 2017-08-24 09:05:23 · 2034 阅读 · 1 评论 -
Mongodb启动命令mongod参数说明
Mongodb启动命令mongod参数说明mongod的主要参数有: 基本配置----------------------------------------------------------------------------------quiet# 安静输出--port arg# 指定服务端口号,默认端口原创 2017-08-28 10:09:05 · 293 阅读 · 0 评论 -
初学Redis(4)——简单实现Redis缓存中的排序功能
在实现缓存排序功能之前,必须先明白这一功能的合理性。不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发的应用;其次,在缓存中排序不会遇到表锁定的问题。Redis恰好提供了排序功能,使我们可以方便地实现缓存排序。 redis中用于实现排序功能的是SORT命令。该命令提供了多种参数,可以转载 2017-08-28 10:04:42 · 281 阅读 · 0 评论 -
初学Redis(3)——用Redis作为Mysql数据库的缓存
把MySQL结果集缓存到Redis的字符串或哈希结构中以后,我们面临一个新的问题,即如何为这些字符串或哈希命名,也就是如何确定它们的键。因为这些数据结构所对应的行都属于某个结果集,假如可以找到一种唯一标识结果集的方法,那么只需为这些数据结构分配一个唯一的序号,然后把结果集标识符与该序号结合起来,就能唯一标识一个数据结构了。于是,为字符串和哈希命名的问题就转化为确定结果集标识符的问题。转载 2017-08-28 10:03:29 · 200 阅读 · 0 评论 -
mongodb的c++接口说明
说明: * IN表示输入参数; * OUT表示输出参数;(1)构造函数:DBClientConnection(bool auto_connect, 0, double so_timeout);auto_connect(IN):连接失败后自动重连so_timeout(IN):非连接超时,tcp的读写超时(2)连接mongo:原创 2017-08-29 23:06:09 · 1271 阅读 · 0 评论 -
MongoDB MapReduce 性能提升20倍的优化宝典
自从MongoDB被越来越多的大型关键项目采用后,数据分析也成为了越来越重要的话题。人们似乎已经厌倦了使用不同的软件来进行分析(这都利用到了Hadoop),因为这些方法往往需要大规模的数据传输,而这些成本相当昂贵。MongoDB提供了2种方式来对数据进行分析:Map Reduce(以下简称MR)和聚合框架(Aggregation Framework)。MR非常灵活且易于使用,它可以很好地与分片转载 2017-08-29 23:06:36 · 237 阅读 · 0 评论 -
CentOS7 安装 elasticsearch-6.1.2
系统环境:Centos7elasticsearch-6.1.2.tar.gzJava8 系统调优1)配置系统最大打开文件描述符数vim /etc/sysctl.confvm.max_map_count = 262144执行以下命令生效sysctl -p 2)配置进程最大打开文件描述符vim /etc/security/limits.conf //文件最后* soft nofil...原创 2018-03-17 10:57:17 · 1364 阅读 · 0 评论 -
编写简单的连接MongoDB数据库C++程序 && 解决编译C++程序时链接MongoDB动态库失败的问题
一. 安装好mongo数据库以后,创建一个用来链接数据库的简单C++程序mon2.cpp,发现很多网站都用这个程序做示例。不过重点在于如何让这个程序真正可以跑起来显示出来结果,着实费了一番功夫。 1 #include 2 #include "client/dbclient.h" 3 4 using namespace mongo; 5 using namespace原创 2017-08-29 23:15:04 · 346 阅读 · 0 评论 -
MongoDB C++开发环境搭建
初次接触MongoDB C++开发,发现官方单独提供的C++ Driver源码包似乎有些问题,经一番折腾后方才顺利的能跑,故在此记下第一篇。 我使用的开发环境Slackware 13.37 x86,既然官方单独提供的C++ Driver有些问题那就全部MongoDB源码构建出.a库吧,首先从(http://downloads.mongodb.org/src/mongodb-src-r1.8.原创 2017-08-29 23:13:05 · 390 阅读 · 0 评论 -
mongodb常用命令
MongoDB由C++写就,其名字来自humongous这个单词的中间部分,从名字可见其野心所在就是海量数据的处理。关于它的一个最简洁描述为:scalable, high-performance, open source, schema-free, document-oriented database。mongodb的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系原创 2017-08-29 23:11:12 · 216 阅读 · 0 评论 -
MongoDB开发学习(2)索引的基本操作
索引能够极大的提高查询的效率。在数据库中简历索引必不可少。在MongoDB中可以很轻松的创建索引。 默认索引_id_开启MongoDB服务器,创建数据库cnblogs,创建集合Users 。(关于这部分知识请看上一篇MongoDB开发学习(1)开天辟地,经典入门)在shell窗口键入如下命令查询集合中所有索引:> db.Users.getIndexes()从原创 2017-08-29 23:10:04 · 181 阅读 · 0 评论 -
老生常谈 MongoDB---分片简析
分片是MongoDB的扩展方式,通过分片能够增加更多的机器来用对不断增加的负载和数据,还不影响应用.1.分片简介 分片是指将数据拆分,将其分散存在不同机器上的过程.有时也叫分区.将数据分散在不同的机器上,不需要功能强大的大型计算机就可以存储更多的数据,处理更大的负载. 使用几乎所有数据库软件都能进行手动分片,应用需要维护与若干不同数据库服务器的连接,每个转载 2017-08-29 23:08:07 · 7326 阅读 · 0 评论 -
MongoDB配置Sharding (负载均衡)
Mongod DB中有Sharding(分片)和Replication(副本)两个功能。前者主要是将数据水平分割到各个结点上,达到负载均衡的目的。后者用于故障恢复。即一般一个Sharding有若干个Replication。本文只讨论Sharding的情况,因为我们的环境机器本来就不够,不会拿来做Replication的。配置Sharding有如下三个要素:1、1~1000个Sh转载 2017-08-29 23:07:23 · 1927 阅读 · 0 评论 -
初学Redis(2)——用Redis作为Mysql数据库的缓存
用Redis作MySQL数据库缓存,必须解决2个问题。首先,应该确定用何种数据结构存储来自mysql的数据;在确定数据结构之后,还要考虑用什么标识作为该数据结构的键。 直观上看,Mysql中的数据都是按表存储的;更微观地看,这些表都是按行存储的。每执行一次select查询,Mysql都会返回一个结果集,这个结果集由若干行组成。所以,一个自然而然的想法就是在redis中找到一种转载 2017-08-28 10:02:50 · 213 阅读 · 0 评论 -
OCCI调用带有返回结果集的存储过程,获取结果集中指定列的值
//用到的带有返回结果记录集的存储过程create or replace procedure recordset(p_cur in out sys_refcursor,sno in int)asbegin open p_cur for select * from student where student.sid = sno; end recordset; //OCC原创 2017-08-27 09:18:02 · 1324 阅读 · 0 评论 -
C语言使用popen获得FTP命令的输出信息
/*** Description: ftp工具 ** Input_parms: ip 目标系统IP地址** user 目标系统用户名** pass 目标系统密码** dpath 目标系统存原创 2017-08-23 11:15:28 · 1010 阅读 · 0 评论 -
SUSE Linux 下 MySQL集群配置
一、运行环境配置管理节点:操作系统:SUSE Linux Enterprise Server 11 (x86_64),主机名:gvhost49,ip地址:10.0.31.49数据节点1:操作系统: SUSE Linux Enterprise Server 9 (x86_64),主机名:gvhost40,ip地址:10.0.31.40数据节点2:操作系统: SUSE Linux En原创 2017-08-25 09:13:28 · 380 阅读 · 0 评论 -
MySql错误代码1045的解决方案
错误代码 1045Access denied for user 'root'@'localhost' (using password:YES)解决办法是重新设置root用户密码,在Windows平台下操作步骤如下:1、以系统管理员身份登录到系统;2、如果MySQL服务器正在运行,停止它。 如果是作为Windows服务运行的服务器,进入服务管理器:开始菜原创 2017-08-25 09:13:00 · 307 阅读 · 0 评论 -
MySQL-Cluster 7.3.2 安装和配置
环境:一台 172.28.23.237 做一个数据节点、SQL节点、管理节点一台 172.28.23.240 做一个数据节点、SQL节点操作系统:均为 CentOS 6.4 64位一. 下载MySql Cluster和解压http://www.mysql.com/downloads/cluster/先设置172.28.23.237,把MySql Clus原创 2017-08-25 09:12:39 · 252 阅读 · 0 评论 -
mysql cluster rpm安装包的选择 安装 配置 测试
现在新版本的MySQL集群已从普通的mysql版本中提取出来了,也就是要做mysql的集群需要选择mysql集群对应的软件包。而且mysql专门提供了针对redhat 操作系统的rpm软件包。可以从http://dev.mysql.com/downloads/获得对应的操作系统的rpm软件包。在这里主要谈谈mysql rpm包的集群 mysql集群的三种类型的节点:原创 2017-08-25 09:12:08 · 444 阅读 · 0 评论 -
mysql cluster双机集群
一、介绍这篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySql集群依然能够继续运行。安装环境及软件包:2台PCmysql-6.0.0-alpha.tar.gzCentos5SerA:192.168.1.50SerB:192.168.1.8二、在SerA和SerB上安装MySQL以下步骤需要在Ser原创 2017-08-25 09:11:32 · 475 阅读 · 0 评论 -
MySQL语法大全_自己整理的学习笔记
select * from emp; #注释#---------------------------#----命令行连接MySql---------#启动mysql服务器net start mysql#关闭 net stop mysql #进入mysql -h 主机地址 -u 用户名 -p 用户密码 #退出exit#----原创 2017-08-25 09:10:49 · 218 阅读 · 0 评论 -
autotools的用法
对make的思考:1. make被设计为一个重编译的工具: make这个工具最大的缺点就是:Dealing with dependencies。就是说user需要手动写生成各种目标的依赖关系。另外的缺点,就是任何一个安装用户,都得去改Makefile,以决定编译参数,安装路径等。这就是早期,在只有make工具的时候,人们所面临的不爽。事实上,make只是设计为一个方便重编译的工具,而编译什原创 2017-08-21 10:48:09 · 361 阅读 · 0 评论 -
gdb core 调试
1. 前言:有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的.但这不像编译错误一样会提示到文件->行, 而是没有任何信息, 使得我们的调试变得困难起来.2. gdb:有一种办法是, 我们用gdb的step, 一步一步寻找. 这放在短小的代码中是可行的, 但要让你step一个上万行的代码, 我想你会从此厌恶程序员这个名字原创 2017-08-21 10:47:37 · 220 阅读 · 0 评论 -
MYSQL1130错误的解决方案
安装完MySQL后,远程连接数据库的时候,出现 ERROR 1130 (HY000): Host '192.168.0.1' is not allowed to connect to this MySQL server提示信息,不能远程连接数据库。考虑可能是因为系统数据库mysql中user表中的host是localhost的原因,于是,我尝试把这个值改为自己服务器的ip,果然就好用了,不过用 m原创 2017-08-25 09:13:51 · 1575 阅读 · 0 评论 -
Oracle 创建 DBLink 的方法
1、如果需要创建全局 DBLink,则需要先确定用户有创建 dblink 的权限:[c-sharp] view plain copy print?select * from user_sys_privs where privilege like upper('%DATABASE LINK%'); 如果没有,则需要使原创 2017-08-25 09:14:23 · 307 阅读 · 0 评论 -
使用version参数解决Oracle数据泵版本差异
当我们回顾Oracle产品工具发展历程,不能不承认Exp/Imp的成功。从早期的版本到现在11g,Exp/Imp都是开发人员最常使用、也是最简单使用的数据库逻辑备份工具。 但是随着Oracle产品的不断发展和现实环境中数据海量化,Exp/Imp已经不能满足实际需要了。Oracle在10g版本中正式推出了数据泵(Data Pump),也就是Expdp/Impdp产品。在很多方面,Data原创 2017-08-26 17:25:52 · 1370 阅读 · 0 评论 -
sqlite3-入门日记4-实现C++类封装
一、前言: 今天试了下如何用C++类实现接口封装,感觉蛮好 。用于封装的类主要有两个,SQLiteStatement类和SQLiteWrapper类,是一个老外写的。我看了下源码,主要是对C接口进行了封装,好处自然不用说,可以重用。很佩服老外的技巧,在这里就引用下他们的代码供大家分享下他们的思想。源代码链接: http://www.adp-gmbh.ch/sqlite/wrapper转载 2017-08-23 11:14:46 · 1174 阅读 · 0 评论 -
Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)
(1)安装freeTDSFreeTDS为Linux系统提供了TDS协议的开源客户端。由于MS SQL和Sybase使用的恰是TDS协议,所以在Linux中可以用FreeTDS连接MS SQL。官网:http://www.freetds.org下载:wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-sta转载 2017-08-23 11:14:10 · 695 阅读 · 0 评论 -
Linux Pthread 深入解析
Outline - 1.线程特点- 2.pthread创建- 3.pthread终止 - 4.mutex互斥量使用框架 - 5.cond条件变量 - 6.综合实例====================================================================================原创 2017-08-23 11:12:39 · 730 阅读 · 0 评论 -
Linux 的多线程编程的高效开发经验
背景Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编程上的问题,并分别引出相关改善的开发经验,用以避免这些的陷阱。我们希望这些经验可以帮助读者们能更好更快的熟悉 Linux 平台的多线程编程。原创 2017-08-23 11:11:50 · 361 阅读 · 0 评论 -
解决linux下WaitForMultipleObjects的一种方法
借助了linux下的Semaphore(信号量),实现了一种简单的WaitForMultipleObjects。关于Semaphore参考如下的文章:http://blog.163.com/wulin_shenghua/blog/static/27580770200952644311771/具体思想:多个线程共享一个信号量,子线程结束后让信号量+1,主线程做n次信号量-1的操作(为原创 2017-08-23 11:11:10 · 1622 阅读 · 0 评论 -
expdp命令远程备份
expdp/impdp属于服务端工具, 它们生成的文件默认是存放在服务端的。如何能使目标机器上expdp备份出来服务器上的文件了?要使用expdp命令远程备份则要使用到数据库链接,首先了解数据库链接的相关知识。 数据库链接(database link):一个数据库链接是架构在一个数据库对象数据库,使你能够在另一个访问对象。它是用来方便一个数据库中访问另一个数据库的(包括本地和远程)原创 2017-08-25 09:15:14 · 2773 阅读 · 0 评论 -
impdp的TABLE_EXISTS_ACTION参数选项
impdp有一个参数选项TABLE_EXISTS_ACTION,help=y的解释为:Action to take if imported object already exists.Valid keywords are: APPEND, REPLACE, [SKIP] and TRUNCATE. 官方文档有句话:“Only objects created by the I原创 2017-08-25 09:14:48 · 791 阅读 · 0 评论 -
GCC 编译选项
gcc 提供了大量的警告选项,对代码中可能存在的问题提出警 告,通常可以使用-Wall来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration原创 2017-08-21 10:47:12 · 214 阅读 · 0 评论