- 浏览: 91147 次
- 性别:
- 来自: 厦门-->北京
最新评论
-
masuweng:
mac 使用virtualbox 安装 centos -
topinking:
工具很不错我手头有个case,报了NullPointExcep ...
一个通过java的接口生成thrift文件的工具 -
zh_harry:
redis我挺熟的,不要脸一把
从redis谈数据结构 -
sharewind:
牛人啊,膜拜一下
从redis谈数据结构
文章列表
公司的mac 电脑发下来了,需要重新安装centos, 花了一些时间折腾,具体流程如下
(1) 下载安装virtualbox : https://www.virtualbox.org/wiki/Downloads
(2) 下载centos并安装
(3) 这样操作之后会发现两个问题, 一个是centos没法全屏展示, 另外一个问题是没办法和宿主主机共享剪切板, 所以, 需要安装 加强组件, Devices --> Insert Guest Additions ...
(4) 安装发现一个问题, 提示缺少linux kernel的源代码, 所以, 需要通过yum ...
1.下载代码
git clone https://github.com/google/leveldb.git
2.编译代码,之后会生成libleveldb.a文件
由于level把本来需要依赖的库都自己实现了,所以直接make就行,不过在g++3版本下不能会出错,需要在makefile中修改CXXFLAGS参数
CXXFLAGS += -fno-access-con ...
功能介绍
对qps以及接口的平均耗时进行统计
特点
轻量: 共219KB(代码量约300行), 无需安装,加压即可使用
低侵入: 基于日志文件进行统计,无需修改原程序
使用说明
2.1 下载工具包 log_monitor.tar.gz,并解压
2.2 之后进行参数配置,可以拷贝现有的,各个参数说明如下:
很早之前写的一个工具,面向的用户主要有两种
1.没接触thrift,但是希望使用thrift的用户,可以便于新用户的理解
2.之前用的是rmi,之后想转成thrift的用户
example
public interface ICommonUserService {
public User login(int id, String name);
public User getUserById(long id);
public boolean saveUser(User
在实际的系统中,我们经常会进行分布式的系统部署,但是这样会导致一个问题,系统日志也被分散开了,导致根据日志进行错误定位不太方便,所以,利用simple_flow实时流的特点,再配合elasticsearch建立索引,搭配构建一个实时日志搜索系统.具体流程图如下:
具体实现如下:
1.启动elasticsearch, 这个参考官方文档 http://www.elasticsearch.org/
2.编译安装simple_flow/生成log_index(将日志转化为索引程序)
2.1 git clone git@github.com:hongliuliao/simpl ...
简介:
我们知道redis的自带的复制功能,是在slave连上master之后,master会将全部数据通过rdb存储之后发送到slave,增量的数据再通过aof文件格式传输,当数据量比较大的时候,这样会对master服务造成影响,尤其是网络不太稳定的时候,redis会重新进行全量的复制,虽然2.8之后可以部分复制了,但是依然不是完全可靠的,所以,为了能让服务更加稳定的运行,我换了一个思路,采用拉的方式来进行同步,具体流程如下图:
实现步骤:
(1) master redis开启aof, 具体参考 http://redis.io/topics/pers ...
监控系统简介
通过拉取在线服务日志(比如apache的access log),将日志信息(pv数据)保存到redis,并通过曲线图展示
使用组件
(1) simple_flow -- 流式计算
(2) simple_server -- 用于前端展示
(3) redis -- pv数据存储
(4) jschats -- 前端曲线展示
流程图
准备过程
(1) 启动 redis (在本地6379端口)
(2) 会滚动的日志文件
实现流程
(1) 下载 simple_flow : https://github.com/hongliul ...
simple_flow
simple realtime flow computation
简介
simple_flow 是一个简单的实时流计算框架,由两部分组成,一个是agent,一个是flow_server, agent负责将数据实时传输给flow_server,flow_server负责对实时流的处理
特点
simple_server
此组件是为了使用c++方便快速的构建http server,编写基于http协议json格式的接口,和nginx等传统服务器相比,更加重视开发的便捷性,项目参考restbed 实现, 重新实现的原因是restbed只支持g++4.9以上
特点
只支持linux
单进程+单线程模型
g++3.4 以上编译器都支持
强调简洁实用
特点
简洁但是功能实用
只支持linux
线程不安全
功能列表
支持动态加载配置文件,修改日志等级
支持使用脚本进行日志文件的切分
性能
之前一直不太懂,为什么跳表的平均时间复杂度为O(logN)
但是后来看了下http://blog.xiaoheshang.info/?p=248 算是理解了一些,再结合自己的思考,记录一下
首先,需要理解刚才那篇文章中的 "如果每2^i个节点都指向前面2^i个节点,寻找一个节点的复杂度变成logn(类似于二分查找)", 这个应该没什么问题
那么问题来了,为什么随机的层数也能保证logN的复杂度?
原因就在于,这里说的随机,并不是完全的随机一个层数出来,而是通过随机的算法,算出一个并不随机的层数来
以redis中的随机层数的算法来看
int zslRandomLevel ...
使用c实现按单词进行字符串反转
- 博客分类:
- c
简陋实现版本,不考虑复杂情况
input: hello my book
output: book my hello
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
void reverse_chars(char *src, int start, int length) {
char *start_ptr = src + start;
for(unsigned int i = 0;i < length / 2; i++) {
char ...
1.安装apache2.2
wget http://mirrors.hust.edu.cn/apache//httpd/httpd-2.2.29.tar.gz
tar -xzvf httpd-2.2.29.tar.gz
cd httpd-2.2.29
./configure
make && make install
2.安装mysql
sudo apt-get install mysql-server
sudo apt-get install libmysqld-dev (针对 configure: error: Cannot find MySQL header files u ...
1.优酷
https://chrome.google.com/webstore/detail/peddmpbdeelbhgfjnmlkfgeddigonncm
2.pptv
https://chrome.google.com/webstore/detail/lcibdonokophlabplhpmmmjjbgohgcok