客户端
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <hiredis.h> typedef struct { char *data; int size; int r_offs; } buffer_t; #define INIT_SIZE 8 int buffer_init(buffer_t *buffer, int initial_size) { buffer->data = (char *) malloc(initial_size); if (buffer->data == NULL) { return -1; } memset(buffer->data, 0, initial_size); buffer->size = initial_size; buffer->r_offs = 0; return 0; } void buffer_clear(buffer_t *buffer) { memset(buffer->data, 0, buffer->size); buffer->r_offs = 0; } void buffer_destroy(buffer_t *buffer) { free(buffer->data); buffer->size = 0; buffer->r_offs = 0; } void stdin_prefix(char* host, int port, redisContext *redisContext) { if (redisContext && ! redisContext->err) { printf("%s:%d> ", host, port); } else { printf("not connected> "); } } int main(int argc, const char **argv) { redisContext *redisContext; redisReply *redisReply; char *host = "127.0.0.1"; int port = 6379; int repl = 1; int i; for (i = 1; i < argc; i++) { const char *arg = argv[i]; if (strncmp(arg, "-h", 2) == 0) { if (i + 1 < argc) { host = (char *) argv[i + 1]; i++; } } else if (strncmp(arg, "-p", 2) == 0) { if (i + 1 < argc) { port = atoi(argv[i + 1]); i++; } } else { repl = 0; argc = argc - i; argv = &argv[i]; } } //printf("host:port=%s:%d\n", host, port); redisContext = redisConnect(host, port); if (! redisContext) { printf("Could not connect to Redis at %s:%d: (redisConnect err.)\n", host, port); if (! repl) { return -1; } } if (redisContext->err) { printf("Could not connect to Redis at %s:%d: %s(redisConnect err=%d.)\n", host, port, redisContext->errstr, redisContext->err); if (! repl) { redisFree(redisContext); return -1; } } if (! repl) { redisReply = redisCommandArgv(redisContext, argc, argv, NULL); printf("%s\n", redisReply->str); freeReplyObject(redisReply); } else { buffer_t buffer; buffer_init(&buffer, INIT_SIZE); for (; ;) { stdin_prefix(host, port, redisContext); while(1) { int i, r_offs = buffer.r_offs; fgets(buffer.data + buffer.r_offs, buffer.size - buffer.r_offs, stdin); buffer.r_offs += buffer.size - buffer.r_offs - 1; for (i = r_offs; i < buffer.r_offs; i++) { if (buffer.data[i] == '\n') { buffer.data[i] = 0; break; } } if (i < buffer.r_offs) { break; } else { buffer.size += INIT_SIZE; buffer.data = realloc(buffer.data, buffer.size); } } if (strcmp(buffer.data, "quit") == 0) { break; } if (! redisContext || redisContext->err) { if (redisContext) { printf("Could not connect to Redis at %s:%d: %s(redisConnect err=%d.)\n", host, port, redisContext->errstr, redisContext->err); redisFree(redisContext); } else { printf("Could not connect to Redis at %s:%d: (redisConnect err.)\n", host, port); } redisContext = redisConnect(host, port); buffer_clear(&buffer); continue; } redisReply = redisCommand(redisContext, buffer.data); if (redisReply->str) { printf("%s\n", redisReply->str); } else { printf("(nil)\n"); } freeReplyObject(redisReply); buffer_clear(&buffer); /* redisReply = redisCommand(redisContext, "SET %s %s", "hello", "this is c"); printf("%s\n", redisReply->str); freeReplyObject(redisReply); redisReply = redisCommand(redisContext, "GET %s", "hello"); printf("%s\n", redisReply->str); freeReplyObject(redisReply); redisReply = redisCommand(redisContext, "GET hel"); if (redisReply->str) { printf("%s\n", redisReply->str); } else { printf("(nil)\n"); } freeReplyObject(redisReply); */ } buffer_destroy(&buffer); } redisFree(redisContext); return 0; }
>.\redis_test.exe -h 127.0.0.1
Could not connect to Redis at 127.0.0.1:6379: Connection refused(redis
Connect err=1.)
not connected> quit
>.\redis_test.exe -h 127.0.0.1 -p 1234
Could not connect to Redis at 127.0.0.1:1234: Connection refused(redis
Connect err=1.)
not connected> quit
>.\redis_test.exe -h 127.0.0.1
Could not connect to Redis at 127.0.0.1:6379: Connection refused(redis
Connect err=1.)
not connected> get hello
Could not connect to Redis at 127.0.0.1:6379: Connection refused(redis
Connect err=1.)
not connected> get name
Could not connect to Redis at 127.0.0.1:6379: Connection refused(redis
Connect err=1.)
not connected> quit
>.\redis_test.exe -h 192.168.0.102
192.168.0.102:6379> quit
>.\redis_test.exe -h 192.168.0.102
192.168.0.102:6379> get hello
this is c
192.168.0.102:6379> get keya
valuea
192.168.0.102:6379> get name
luoxiaoyong
192.168.0.102:6379> set key b
OK
192.168.0.102:6379> get key
b
192.168.0.102:6379> quit
相关推荐
cpp_redis cpp_redis是C ++ 11异步多平台轻量级Redis客户端,支持同步操作,流水线,标记和高可用性。需求cpp_redis没有依赖项。 它唯一的要求是C++11 。 它没有网络模块,因此您可以自由配置自己的模块,也可以使用...
redis mac 客户端,redis desktop manager for mac 0.9.3.39,用于管理redis数据库
redis集群客户端管理工具
Redis推荐的最好的.Net客户端。 ServiceStack.Redis 4.0 已经收费 并且有每小时6000次插入的限制。这个是ServiceStack.Redis 3系版本的最终最新版本3.9.60,无使用限制, Redis.NET客户端无限制版
redis windows 客户端 redis windows 客户端 redis windows 客户端 redis windows 客户端 redis windows 客户端 redis windows 客户端 redis windows 客户端 redis windows 客户端 redis windows 客户端 redis ...
Redis协议客户端模块.rar
redis客户端连接工具 redis客户端连接工具 redis客户端连接工具
IRedis是具有自动完成功能和语法突出显示功能的redis终端客户端。 IRedis使您可以流畅地键入Redis命令,交互式Redis:具有自动完成功能和语法突出显示功能的Redis Cli。 IRedis是具有自动完成功能和语法突出显示功能...
RedisClient是Redis客户端的GUI工具,使用Java swt和jedis编写,可以方便开发者浏览Redis数据库。该软件支持简体中文,非常适合国内用户使用,不需要汉化就可以直接使用。RedisClient将redis数据以资源管理器的界面...
redis 远程客户端管理工具
通过易语言操作Redis 来自JimStone 谢栋 Redis协议客户端模块:STRedisClient
redis中文客户端,redis中文客户端,redis中文客户端.redis中文客户端
cpp_redis cpp_redis是C ++ 11异步多平台轻量级Redis客户端,支持同步操作,流水线,标记和高可用性。需求cpp_redis没有依赖项。 它唯一的要求是C++11 。 它没有网络模块,因此您可以自由配置自己的模块,也可以使用...
ntex redis 用于Ntex框架的Redis客户端文档和社区资源支持的最低Rust版本:1.45或更高版本例子use ntex_redis :: {cmd, RedisConnector};#[ntex::main]async fn main () -> Result <(), Box < dyn>> { let redis ...
易语言Redis协议客户端易语言模块源码.rar 易语言Redis协议客户端易语言模块源码.rar 易语言Redis协议客户端易语言模块源码.rar 易语言Redis协议客户端易语言模块源码.rar 易语言Redis协议客户端易语言模块源码....
日常使用linux版连接redis客户端Another-Redis-Desktop-Manager.1.3.9
redis客户端的连接工具,mac版本,版本号0.9.3,通过该软件可以再mac上查询redis数据库中的相关数据,比起命令行方便很对
RedisClient是Redis客户端的GUI工具,使用Java swt和jedis编写,可以方便开发者浏览Redis数据库。该软件支持简体中文,非常适合国内用户使用,不需要汉化就可以直接使用。
资源介绍:。JimStone(谢栋) - Redis协议客户端模块。Redis协议客户端模块:STRedisClient for E。实现了对 Redis 客户端协议的封装。资源作者:。JimStone(谢栋)。资源界面:。资源下载:。
里面包含 Redis Desktop Manager 2020.3版,Another-Redis-Desktop-Manager.1.3.8.exe RedisDesktopManager-2020.3.zip 三个客户端