예제 #1
0
int main(int argc, char **argv)
{
	char c;
	redis_client_st *redis_client;
	char config_path[1024];
	int count = 10000;
	if (argc <= 2)
	{
		printf("usage: ./%s -f xxx.conf", "proftest");
		return 1;
	}
	memset(config_path, 0, sizeof(config_path));
	while (-1 != (c = getopt(argc, argv, "f:m:h")))
	{
		switch (c)
		{
		case 'f':
			snprintf(config_path, sizeof(config_path), "%s", optarg);
			break;
		case 'm':
			count = atoi(optarg);
			break;
		case '?':
		case 'h':
			printf("usage: ./%s -f xxx.conf -m 10000", "proftest");
			break;
		}

	}
	redis_client = redis_client_init(config_path);

	int i;
	long t;
	int num = count;
	printf("Sending %d 'set' commands ...\n", num);
	timer(1);
	for (i = 0; i < num; i++)
	{
		if (redis_query(redis_client, "set [email protected] hello") == NULL)
			printf("get returned error\n");
	}
	t = timer(0);
	printf("done! Took %.3f seconds, that is %ld commands/second\n", ((float) t) / 1000, (num
			* 1000) / t);
	printf("Sending %d 'get' commands ...\n", num);
	timer(1);
	for (i = 0; i < num; i++)
	{
		if (redis_query(redis_client, "get [email protected]") == NULL)
			printf("get returned error\n");
	}
	t = timer(0);
	printf("done! Took %.3f seconds, that is %ld commands/second\n", ((float) t) / 1000, (num
			* 1000) / t);
	return 0;

}
예제 #2
0
static void init_global_config(global_conf_st *g_conf, char *file)
{
    if (NULL == file)
    {
	fprintf(stderr, "config file is wrong\n");
	exit(1);
    }
    int L_level = 0;
    xode pnode = xode_from_file(file);
    if (NULL == pnode)
    {
	fprintf(stderr, "config file is wrong\n");
	exit(1);
    }
    int max_thread = xode_get_integer(pnode, "maxThread");
    if (max_thread != -1)
    {
	g_conf->max_thread = max_thread;
    }
    int max_msg_queue_len = xode_get_integer(pnode, "maxMsgQueueLen");
    if (max_msg_queue_len != -1)
    {
	g_conf->max_msg_queue_len = max_msg_queue_len;
    }
    char *log_file = xode_get_string(pnode, "logDir");
    char *redis_conf = xode_get_string(pnode, "redisConf");
    char *reload_file = xode_get_string(pnode, "reloadFile");
    if (log_file == NULL || redis_conf == NULL || reload_file == NULL)
    {
	fprintf(stderr,
		"conf file format wrong ,can't file logDir or redisConf or reload_file\n");
	exit(1);
    }

    snprintf(g_conf->log_dir, sizeof(g_conf->log_dir), "%s", log_file);
    snprintf(g_conf->reload_file, sizeof(g_conf->reload_file), "%s",
	     reload_file);
    snprintf(g_conf->redis_config, sizeof(g_conf->redis_config), "%s",
	     redis_conf);
    char *log_level = xode_get_string(pnode, "logLevel");
    if (log_level != NULL)
    {
	L_level = get_log_level(log_level);
    }
    char program[128];
    memset(program, 0, sizeof(program));
    init_mq(g_conf, pnode);
    snprintf(program, sizeof(program), "%s-%s", PROGRAM,
	     g_conf->receive_mq->task_name);

    gozap_log_init(g_conf->log_dir, L_level, program);

    g_conf->redis_client = redis_client_init(g_conf->redis_config);
    return;
}
예제 #3
0
int main(int argc, char *argv[])
{
	char c;
	redis_client_st *redis_client;
	char config_path[1024];

	if (argc <= 2)
	{
		printf("usage: ./%s -f xxx.conf", PROGRAME);
		return 1;
	}
	memset(config_path, 0, sizeof(config_path));
	while (-1 != (c = getopt(argc, argv, "f:h")))
	{
		switch (c)
		{
		case 'f':
			snprintf(config_path, sizeof(config_path), "%s", optarg);
			break;
		case '?':
		case 'h':
			printf("usage: ./%s -f xxx.conf", PROGRAME);
			break;
		}

	}
	redis_reply_st *reply = NULL;
	redis_client = redis_client_init(config_path);
	redis_return_st rc ;
	char **elements;
	if (NULL == redis_client)
		printf("error\n");
	char *key = "{[email protected]}_hash_test";
	char *field1 = "field1";
	char *field2 = "field2";
	redis_hdel(redis_client, key, field1,&rc);
	int ret =	redis_hdel(redis_client, key, field1,&rc);
	assert(ret == 0);
	ret = redis_hset(redis_client, key, field1, "121", &rc);
	assert(ret == 1);
	redis_hdel(redis_client, key, field2,&rc);
	ret = redis_hincrby(redis_client, key, field2, 1, &rc);
	assert(ret = 1);
	ret = redis_hkeys(redis_client, key, &elements, &rc);
	assert(ret == 2);
	
	
	
	return 1;

}
예제 #4
0
int main(int argc, char *argv[]) {
	char c;
	redis_client_st *redis_client;
	char config_path[1024];

	if (argc <= 2) {
		printf("usage: ./%s -f xxx.conf", PROGRAME);
		return 1;
	}
	memset(config_path, 0, sizeof(config_path));
	while (-1 != (c = getopt(argc, argv, "f:h"))) {
		switch (c) {
		case 'f':
			snprintf(config_path, sizeof(config_path), "%s", optarg);
			break;
		case '?':
		case 'h':
			printf("usage: ./%s -f xxx.conf", PROGRAME);
			break;
		}

	}

	char *key = "{[email protected]}_test_str";

	redis_client = redis_client_init(config_path);
	if (NULL == redis_client)
		printf("error\n");
	char * avg = "hello asdfasdf asdfas";
	redis_return_st rc = redis_set(redis_client, key, avg);
	assert(rc == REDIS_SUCCESS);
	char *rt = redis_get(redis_client, key, &rc);
	assert(rc == REDIS_SUCCESS);
	assert(strcmp(rt, avg) == 0);
	redis_client_free(redis_client);
	return 1;

}
예제 #5
0
int main(int argc, char *argv[]) {
	char c;
	redis_client_st *redis_client;
	char config_path[1024];

	if (argc <= 2) {
		printf("usage: ./%s -f xxx.conf", PROGRAME);
		return 1;
	}
	memset(config_path, 0, sizeof(config_path));
	while (-1 != (c = getopt(argc, argv, "f:h"))) {
		switch (c) {
		case 'f':
			snprintf(config_path, sizeof(config_path), "%s", optarg);
			break;
		case '?':
		case 'h':
			printf("usage: ./%s -f xxx.conf", PROGRAME);
			break;
		}

	}
	redis_reply_st *reply = NULL;
	redis_client = redis_client_init(config_path);
	redis_return_st rc;
	printf("test add conn\n");

	redis_add_conns(redis_client, "*****@*****.**", "*****@*****.**"
		);

	reply = redis_query(redis_client,
			"sismember {[email protected]}_conns [email protected]");
	assert(reply->integer == 1);
	freeReply(reply);
	printf("* ");

	printf("test add following\n");

	redis_add_following(redis_client, "*****@*****.**", "*****@*****.**");

	reply = redis_query(redis_client,
			"sismember {[email protected]}_followings [email protected]");
	assert(reply->integer == 1);
	freeReply(reply);

	reply
			= redis_query(redis_client,
					"sismember [email protected][email protected]  2233");
	assert(reply->integer == 0);
	freeReply(reply);
	printf("* ");




	printf("test del conns\n");

	redis_del_conns(redis_client, "*****@*****.**", "*****@*****.**");

	reply = redis_query(redis_client,
			"sismember {[email protected]}_conns [email protected]");
	assert(reply->integer == 0);
	freeReply(reply);

	reply = redis_query(redis_client,
			"sismember [email protected]_followings [email protected] ");
	assert(reply->integer == 0);
	freeReply(reply);

	printf("* ");

	printf("test add_block\n");

	redis_add_block(redis_client, "*****@*****.**", "*****@*****.**");

	reply = redis_query(redis_client,
			"sismember {[email protected]}_blocks [email protected]");
	assert(reply->integer == 1);
	freeReply(reply);

	printf("* ");

	printf("test del_block\n");

	redis_del_block(redis_client, "*****@*****.**", "*****@*****.**");

	reply = redis_query(redis_client,
			"sismember {[email protected]}_blocks [email protected]");
	assert(reply->integer == 0);
	freeReply(reply);
	printf("* ");

	printf("test get_guids\n");

	char **guid;
	int len;
	redis_get_guids(redis_client, "*****@*****.**", "*****@*****.**", &guid,
			&len);
	int i = 0;
	for (i = 0; i < len; i++) {
		printf("%s\n", guid[i]);
	}

	printf("* ");
	printf("test add_jid_to_group\n");

	redis_add_jid_to_group(redis_client, "*****@*****.**", "*****@*****.**",
			"1221");

	redis_add_jid_to_group(redis_client, "*****@*****.**", "*****@*****.**",
			"1221");
	reply = redis_query(redis_client,
			"sismember {[email protected]}_group_1221 [email protected]");
	assert(reply->integer == 1);
	freeReply(reply);
	//分組管理
	printf("* ");
	printf("test del_jid_from_group\n");

	redis_del_jid_from_group(redis_client, "*****@*****.**", "*****@*****.**",
			"1221");


	reply = redis_query(redis_client,
			"sismember {[email protected]}_group_1221 [email protected]");
	assert(reply->integer == 0);
	freeReply(reply);
	//分組管理
	printf("* ");
	printf("test del group\n");

	redis_del_group(redis_client, "*****@*****.**",
			"1221");


	reply = redis_query(redis_client,
			"sismember {[email protected]}_group_1221 [email protected]");
	assert(reply->integer == 0);
	freeReply(reply);
	//分組管理
	printf("* ");




	printf("\nend\n");

	return 1;

}
예제 #6
0
int main(int argc, char *argv[])
{
	char c;
	redis_client_st *redis_client;
	char config_path[1024];

	if (argc <= 2)
	{
		printf("usage: ./%s -f xxx.conf", PROGRAME);
		return 1;
	}
	memset(config_path, 0, sizeof(config_path));
	while (-1 != (c = getopt(argc, argv, "f:h")))
	{
		switch (c)
		{
		case 'f':
			snprintf(config_path, sizeof(config_path), "%s", optarg);
			break;
		case '?':
		case 'h':
			printf("usage: ./%s -f xxx.conf", PROGRAME);
			break;
		}

	}
	redis_reply_st *reply = NULL;
	redis_client = redis_client_init(config_path);
	redis_return_st rc;
	printf("test send_forbidden \n");
	rc = redis_add_send_forFeedtype(redis_client, "*****@*****.**", "sync.gozap.com");
	reply
			= redis_query(redis_client,
					"sismember {[email protected]}_send_forbidden_feeds sync.gozap.com");
	assert(reply->integer == 1);
	freeReply(reply);
	printf("* ");

	rc = redis_rem_send_forFeedtype(redis_client, "*****@*****.**", "sync.gozap.com");
	reply
			= redis_query(redis_client,
					"sismember {[email protected]}_send_forbidden_feeds sync.gozap.com");
	assert(reply->integer == 0);
	freeReply(reply);

	printf("* ");

	rc = redis_add_send_forJid(redis_client, "*****@*****.**", "*****@*****.**");
	reply = redis_query(redis_client,
			"sismember {[email protected]}_send_forbidden_jids [email protected]");
	assert(reply->integer == 1);
	assert(rc == REDIS_SUCCESS);
	freeReply(reply);
	printf("* ");

	rc = redis_rem_send_forJid(redis_client, "*****@*****.**", "*****@*****.**");
	reply = redis_query(redis_client,
			"sismember {[email protected]}_send_forbidden_jids [email protected]");
	assert(reply->integer == 0);
	assert(rc == REDIS_SUCCESS);
	freeReply(reply);
	printf("* ");

	rc = redis_add_send_forFeedtypeJid(redis_client, "*****@*****.**", "sync.gozap.com",
			"*****@*****.**");
	reply = redis_query(redis_client,
			"sismember {[email protected]}_send_forbidden_sync.gozap.com [email protected]");
	assert(reply->integer == 1);
	assert(rc == REDIS_SUCCESS);
	freeReply(reply);
	printf("* ");

	rc = redis_rem_send_forFeedtypeJid(redis_client, "*****@*****.**", "sync.gozap.com",
			"*****@*****.**");
	reply = redis_query(redis_client,
			"sismember {[email protected]}_send_forbidden_sync.gozap.com [email protected]");
	assert(reply->integer == 0);
	assert(rc == REDIS_SUCCESS);
	freeReply(reply);
	printf("* ");

	printf("\n end \n");

	printf("test receive_forbidden \n");
	rc = redis_add_receive_forFeedtype(redis_client, "*****@*****.**", "sync");
	reply = redis_query(redis_client,
			"sismember {[email protected]}_receive_forbidden_feeds sync");
	assert(reply->integer == 1);
	assert(rc == REDIS_SUCCESS);
	freeReply(reply);
	printf("* ");

	rc = redis_rem_receive_forFeedtype(redis_client, "*****@*****.**", "sync");
	reply = redis_query(redis_client,
			"sismember {[email protected]}_receive_forbidden_feeds sync");
	assert(reply->integer == 0);
	assert(rc == REDIS_SUCCESS);
	freeReply(reply);
	printf("* ");

	rc = redis_add_receive_forJid(redis_client, "*****@*****.**", "*****@*****.**");
	reply = redis_query(redis_client,
			"sismember {[email protected]}_receive_forbidden_jids [email protected]");
	assert(reply->integer == 1);
	assert(rc == REDIS_SUCCESS);
	freeReply(reply);
	printf("* ");
	rc
			= redis_rem_receive_forJid(redis_client, "*****@*****.**", "*****@*****.**");
	reply = redis_query(redis_client,
			"sismember {[email protected]}_receive_forbidden_jids [email protected]");
	assert(reply->integer == 0);
	assert(rc == REDIS_SUCCESS);
	freeReply(reply);
	printf("* ");

	rc = redis_add_receive_forFeedtypeJid(redis_client, "*****@*****.**", "sync",
			"*****@*****.**");
	reply = redis_query(redis_client,
			"sismember {[email protected]}_receive_forbidden_sync [email protected]");
	assert(reply->integer == 1);
	assert(rc == REDIS_SUCCESS);
	freeReply(reply);
	printf("* ");

	rc = redis_rem_receive_forFeedtypeJid(redis_client, "*****@*****.**", "sync",
			"*****@*****.**");
	reply = redis_query(redis_client,
			"sismember {[email protected]}_receive_forbidden_sync [email protected]");
	assert(reply->integer == 0);
	assert(rc == REDIS_SUCCESS);
	freeReply(reply);
	printf("* ");
	printf("\n end \n");

	printf("set auto\n");
	rc = redis_set_feed_auto(redis_client, "*****@*****.**", "1212",1);
	reply = redis_query(redis_client,
			"get {[email protected]}_1212_auto");
	assert(strcmp(reply->str,"1")==0 );
	assert(rc == REDIS_SUCCESS);
	freeReply(reply);
	printf("* ");

	
    char *feed = "10001";
	rc = redis_create_gozap_feed(redis_client, feed);
	reply = redis_query(redis_client, "sismember gozap_feeds %s", feed);
	assert(reply->integer == 1);
	freeReply(reply);
	printf("* ");
    char *comps[] = {"sync", "link"};
    rc  = redis_set_gozap_feed_comp(redis_client, feed, comps ,2);
  
	reply = redis_query(redis_client, "sismember {%s}_comps sync", feed);
	assert(reply->integer == 1);
	freeReply(reply);

	reply = redis_query(redis_client, "sismember {%s}_comps link", feed);
	assert(reply->integer == 1);
	freeReply(reply);
	printf("* ");

	rc  = redis_add_gozap_feed_process(redis_client, feed, "process2" );
	reply = redis_query(redis_client, "sismember {%s}_processes process2", feed);
	assert(reply->integer == 1);
	freeReply(reply);
	
	assert(rc == REDIS_SUCCESS);
	printf("* ");

	rc = redis_del_gozap_feed_type(redis_client, feed);
	reply = redis_query(redis_client, "sismember gozap_feeds %s", feed);
	assert(reply->integer == 0);
	freeReply(reply);
	printf("* ");

	reply = redis_query(redis_client, "EXISTS {%s}_comps", feed);
	assert(reply->integer == 0);
	freeReply(reply);
	printf("* ");

	reply = redis_query(redis_client, "EXISTS {%s}_processes", feed);
	assert(reply->integer == 0);
	freeReply(reply);
	printf("* ");

	assert(rc == REDIS_SUCCESS);
	printf("* ");


	printf("\nend\n");

	return 1;

}