Пример #1
0
/*
 * DML Functions
 */
Datum
pr_set(PG_FUNCTION_ARGS) {
	text * key_arg = PG_GETARG_TEXT_P(0);
	text * value_arg = PG_GETARG_TEXT_P(1);
	int expire = PG_GETARG_UINT32(2);
	int ret;
	
	char * key = NULL;
	char * value = NULL;
	
	if (!pgredis || !pgredis->redis_server) {
		elog(ERROR, "Unable to set, redis instance missing");
		PG_RETURN_FALSE;
	}

  	key = DatumGetCString(DirectFunctionCall1(textout, PointerGetDatum(key_arg)));
  	value = DatumGetCString(DirectFunctionCall1(textout, PointerGetDatum(value_arg)));
	
	if (!key || !value) {
		elog(ERROR, "Key/value incomplete in pgredis set");
		PG_RETURN_FALSE;
	}

	ret = credis_set(pgredis->redis_server, key, value);
	if (ret == CREDIS_OK) {
		ret = credis_expire(pgredis->redis_server, key, expire);
	}
  	PG_RETURN_BOOL(ret == CREDIS_OK);
}
Пример #2
0
int ZRedis::app_set(const char *key, const PLAT_UINT8* content)
{
    app2db(content, m_charBuf);
    credis_set(m_pRedis, key, m_charBuf);
    
    return 0;
}
Пример #3
0
//-----------------------------------------------------------------------------
int CRedisClient::set(const std::string key, const std::string value)
{
  int r;

  if (mRedisCon) {
    r = credis_set( mRedisCon, key.c_str(), value.c_str() );
    if (r == 0)
      return 1; // succes
  }
  return 0; // failure
}
Пример #4
0
const string* db_set (closure* c, db* self, const string* key, const string* value)
{
  string* reply = (string*)value;
  char* keyc    = (char*)send(key,   s_string_tochar);
  char* valuec  = (char*)send(value, s_string_tochar);
  int rc        = credis_set(self->handle, keyc, valuec);
  if (rc != 0) { 
    reply = (string*)send(VillageBus, s_villagebus_error, L"set failed %s: %s", keyc, valuec);
  } 
  free(keyc);
  free(valuec);
  return reply;
}
Пример #5
0
static void redis_drv_set(redis_drv_t *redis_drv, Reader *const reader)
{
  int rc;
  REDIS redis = redis_drv->redis;
  
  const uint64_t *keysize = NULL;
  const char *key = NULL;
  const uint64_t *valuesize = NULL;
  const char *value = NULL;
  
  if(read_binary(reader, &key, &keysize) && read_binary(reader, &value, &valuesize)){
    rc = credis_set(redis, key, value);
    if(rc > -1){
      return_ok(redis_drv, REDIS_DRV_OK);
    } else {
      return_error(redis_drv, REDIS_DRV_ERROR);
    }
  } else {
    return_error(redis_drv, REDIS_DRV_ERROR);
  }
}
Пример #6
0
int main(int argc, char **argv) {
  REDIS redis;
  REDIS_INFO info;
  char *val, **valv;
  const char *keyv[] = {"kalle", "adam", "unknown", "bertil", "none"};
  int rc, keyc=5, i;


  redis = credis_connect(NULL, 0, 10000);
  if (redis == NULL) {
    printf("Error connecting to Redis server. Please start server to run tests.\n");
    exit(1);
  }

  printf("\n\n************* misc info ************************************ \n");

  rc = credis_info(redis, &info);
  printf("info returned %d\n", rc);
  printf("> redis_version: %s\n", info.redis_version);
  printf("> arch_bits: %d\n", info.arch_bits);
  printf("> multiplexing_api: %s\n", info.multiplexing_api);
  printf("> process_id: %ld\n", info.process_id);
  printf("> uptime_in_seconds: %ld\n", info.uptime_in_seconds);
  printf("> uptime_in_days: %ld\n", info.uptime_in_days);
  printf("> connected_clients: %d\n", info.connected_clients);
  printf("> connected_slaves: %d\n", info.connected_slaves);
  printf("> blocked_clients: %d\n", info.blocked_clients);
  printf("> used_memory: %zu\n", (size_t)info.used_memory);
  printf("> used_memory_human: %s\n", info.used_memory_human);
  printf("> changes_since_last_save: %lld\n", info.changes_since_last_save);
  printf("> bgsave_in_progress: %d\n", info.bgsave_in_progress);
  printf("> last_save_time: %ld\n", info.last_save_time);
  printf("> bgrewriteaof_in_progress: %d\n", info.bgrewriteaof_in_progress);
  printf("> total_connections_received: %lld\n", info.total_connections_received);
  printf("> total_commands_processed: %lld\n", info.total_commands_processed);
  printf("> expired_keys: %lld\n", info.expired_keys);
  printf("> hash_max_zipmap_entries: %zu\n", (size_t)info.hash_max_zipmap_entries);
  printf("> hash_max_zipmap_value: %zu\n", (size_t)info.hash_max_zipmap_value);
  printf("> pubsub_channels: %ld\n", info.pubsub_channels);
  printf("> pubsub_patterns: %u\n", info.pubsub_patterns);
  printf("> vm_enabled: %d\n", info.vm_enabled);
  printf("> role: %d\n", info.role);

  printf("\n\n************* get/set ************************************ \n");

  rc = credis_set(redis, "kalle", "kula");
  printf("set kalle=kula returned: %d\n", rc);

  rc = credis_get(redis, "kalle", &val);
  printf("get kalle returned: %s\n", val);

  rc = credis_type(redis, "someunknownkey");
  printf("get type unknown key returned: %d\n", rc);

  rc = credis_type(redis, "kalle");
  printf("get type known key returned: %d\n", rc);

  rc = credis_getset(redis, "kalle", "buhu", &val);
  printf("get set kalle=buhu returned: %s\n", val);

  rc = credis_get(redis, "kalle", &val);
  printf("get kalle returned: %s\n", val);

  rc = credis_del(redis, "kalle");
  printf("del kalle returned: %d\n", rc);

  rc = credis_get(redis, "kalle", &val);
  printf("get kalle returned: %s\n", val);

  rc = credis_set(redis, "adam", "aaa");
  rc = credis_set(redis, "bertil", "bbbbbbb");
  rc = credis_set(redis, "caesar", "cccc");
  rc = credis_get(redis, "adam", &val);
  printf("get adam returned: %s\n", val);
  rc = credis_get(redis, "bertil", &val);
  printf("get bertil returned: %s\n", val);
  rc = credis_get(redis, "caesar", &val);
  printf("get caesar returned: %s\n", val);

  rc = credis_mget(redis, keyc, keyv, &valv);
  printf("mget returned: %d\n", rc);
  for (i = 0; i < rc; i++)
    printf(" % 2d: %s\n", i, valv[i]);
     
  credis_close(redis);

  return 0;
}