C语言操作Redis总结

  1 #include "hiredis.h"
  2
  3 #define NO_QFORKIMPL
  4 #pragma comment(lib,"hiredis.lib")
  5 #pragma comment(lib,"Win32_Interop.lib")
  6
  7 int get_int_command(char int_command[200])
  8 {
  9     reply = (redisReply *)redisCommand(c, int_command);
 10     //printf("exists命令执行结果: %d\n", reply->type);
 11     if (reply->type == 3)    //返回整型标识
 12     {
 13         //printf("%s命令执行结果: %d\n", int_command, reply->integer);
 14         return reply->integer;
 15     }
 16     else if (reply->type == 4)    //返回nil对象
 17     {
 18         return -1;
 19     }
 20     else if (reply->type == 6)    //返回错误
 21     {
 22         return -2;
 23     }
 24     freeReplyObject(reply);
 25     return 0;
 26 }
 27
 28 char* get_string_command(char string_command[200])
 29 {
 30     reply = (redisReply *)redisCommand(c, string_command);
 31     //printf("lindex MA_h1_K 0命令执行结果 reply type: %d\n", reply->type);
 32     if (reply->type == 1)    //返回字符串标识
 33     {
 34         //printf("lindex MA_h1_K 0命令执行结果 reply type: %s\n", reply->str);
 35         return reply->str;
 36     }
 37     else if (reply->type == 4)    //返回nil对象
 38     {
 39         return "不存在要访问的数据";
 40     }
 41     else if (reply->type == 6)    //返回错误
 42     {
 43         return reply->str;
 44     }
 45     freeReplyObject(reply);
 46     return "";
 47 }
 48
 49 void run_command(char run_command[200])
 50 {
 51     reply = (redisReply *)redisCommand(c, run_command);
 52     //printf("reply type: %d\n", reply->type);
 53     if (reply->type == 5)
 54     {
 55         //printf("run_command执行结果: %s\n", reply->str);
 56     }
 57     freeReplyObject(reply);
 58 }
 59
 60 int main()
 61 {
 62     SYSTEMTIME sys;
 63     char local_time[25] = "";
 64
 65     c = redisConnect((char*)redis_host, redis_port);
 66     if (c->err) {    /* Error flags, 0 when there is no error */
 67         printf("连接Redis失败: %s\n", c->errstr);
 68         exit(1);
 69     }
 70     else
 71     {
 72         printf("连接Redis成功!\n");
 73     }
 74
 75     reply = (redisReply *)redisCommand(c, "AUTH %s", redis_password);
 76     if (reply->type == REDIS_REPLY_ERROR) {
 77         printf("Redis认证失败!\n");
 78     }
 79     else
 80     {
 81         printf("Redis认证成功!\n");
 82     }
 83     freeReplyObject(reply);
 84
 85     reply = (redisReply *)redisCommand(c, "SELECT 1");    //选择数据库
 86     printf("SELECT: 1 %s\n", reply->str);
 87     freeReplyObject(reply);
 88
 89     //delete命令
 90     run_command("DEL foo");
 91
 92     //set命令
 93     run_command("SET foo hello world");
 94
 95
 96     //get命令
 97     printf("GET foo命令执行结果 : %s\n", get_string_command("GET foo"));
 98
 99
100     //exists命令
101     printf("exists test1命令执行结果: %d\n", get_int_command("exists test1"));
102     printf("exists MA_h1_K命令执行结果: %d\n", get_int_command("exists MA_h1_K"));
103
104
105     //llen命令
106     printf("llen MA_h1_K命令执行结果: %d\n", get_int_command("llen MA_h1_K"));
107
108
109     //lrange命令
110     reply = (redisReply *)redisCommand(c, "lrange MA_h1_K 0 7");
111     //printf("lrange MA_h1_K 0 7命令执行结果 reply type: %d\n", reply->type);
112     if (reply->type == 2)
113     {
114         printf("队列数量为: %d\n", reply->elements);
115         if (reply->element[0]->type == 1)
116         {
117             for (int i = 0; i < reply->elements; i++)
118             {
119                 printf("lrange MA_h1_K 0 7命令执行结果: %s\n", reply->element[i]->str);
120             }
121         }
122
123     }
124     freeReplyObject(reply);
125
126     //lindex命令
127     printf("lindex MA_h1_K 0命令执行结果 : %s\n", get_string_command("lindex MA_h1_K 0"));
128
129
130     //lpush命令
131     run_command("lpush list test1 test2 test3");
132
133     //lpop命令
134     printf("lpop list命令执行结果 : %s\n", get_string_command("lpop list"));
135
136     //rpop命令
137     printf("rpop list命令执行结果 : %s\n", get_string_command("rpop list"));
138
139     //rpoplpush命令
140     printf("rpoplpush list list1命令执行结果 : %s\n", get_string_command("rpoplpush list list1"));
141
142     printf("lpop list1命令执行结果 : %s\n", get_string_command("lpop list1"));
143
144     //lpush    rpush    lpop    rpop    RPOPLPUSH
145
146
147     char test;
148     test = getchar();
149 }
时间: 2024-10-12 19:25:21

C语言操作Redis总结的相关文章

GO 语言操作 redis 数据库

redis数据库 是一种高性能的Key-Value数据库 ???NoSQL数据库 ???????缓存型数据库 key-value型数据库 错误的说法非关系型数据库 1.redis介绍 1.1NoSQL:一类新出现的数据库(not only sql) 泛指缓存型的数据库 不支持SQL语法 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式 NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景 NoSQL中的产品种类相

Go语言操作redis

Redis的Go语言驱动已经很成熟了,用redigo弄了个例子. package main //Redis测试 //author:Xiong Chuan Liang //date:2015-3-5 import ( "fmt" "time" "log" "github.com/garyburd/redigo/redis" ) func main(){ fmt.Println("Redis:") conn,e

Go操作Redis

Go语言操作Redis 在项目开发中redis的使用也比较频繁,本文介绍了Go语言如何操作Redis. Redis介绍 Redis是一个开源的内存数据库,Redis提供了5种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上.除此之外,通过复制.持久化和客户端分片等特性,我们可以很方便地将Redis扩展成一个能够包含数百GB数据.每秒处理上百万次请求的系统. Redis支持的数据结构 Redis支持诸如字符串(strings).哈希(hashes).列表(lists).集

Java Spring mvc 操作 Redis 及 Redis 集群

本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 Redis 是什么,能做什么 Redis 是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符串.哈希表.列表.集合.有序集合,位图,hyperloglogs等数据类型.内置复制.Lua脚本.LRU收回.事务以及不同级别磁盘持久化功能,同时通过Redis

Redis介绍 &amp;&amp; Java客户端操作Redis

Redis介绍 && Java客户端操作Redis 本文内容 redis介绍 redis的 shell 客户端简介 redis的 java 客户端简介 环境配置 redis 2.8.17 64bit JDK1.6 redis介绍 大多数时候,我们都将 redis 称作是内存数据库,它在运行过程中,将键值对信息存储在内存中,同时在后台以异步的形式写入本地数据库中(默认是:dump.rdb,在 redis.conf 中配置,如果需要考虑安全的持久化需求需要开启 AOF 功能,详细介绍可以查看这

利用predis操作redis方法大全

predis是php连接redis的操作库,由于它完全使用php编写,大量使用命名空间以及闭包等功能,只支持php5.3以上版本,故实测性能一般,每秒25000次读写,相信改换c语言编写的php扩展后性能会大幅提升(比如使用C扩展phpredis https://github.com/owlient/phpredis). 将session数据存放到redis也很简单:session.save_handler = redissession.save_path = "tcp://127.0.0.1:

golang操作redis

go get github.com/garyburd/redigo/redis import "github.com/garyburd/redigo/redis" 连接 Conn接口是与Redis协作的主要接口,可以使用Dial,DialWithTimeout或者NewConn函数来创建连接,当任务完成时,应用程序必须调用Close函数来完成操作. package main import ( "github.com/garyburd/redigo/redis" &q

使用Java代码操作 Redis

使用Java代码操作 RedisJedis简介实际开发中,我们需要用Redis的连接工具连接Redis然后操作Redis,对于主流语言,Redis都提供了对应的客户端:提供了很多客户端 官方推荐的是Jedis 托管地址:https://github.com/xetorthio/jedis 要使用redis首先得下载pom依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis<

Java操作Redis之Jedis用法详解

Redis(Remote Dictionary Server,远程数据字典服务器)是一个开源的高性能内存数据库,常用作缓存缓存服务器使用,也已做消息队列使用.因其高性能.丰富的数据类型.可扩展等特性受开发者青睐,这里介绍在java中使用Jedis操作Redis的基本用法. 1. 字符串String. package com.zws.redis.examples; import java.util.concurrent.TimeUnit; import redis.clients.jedis.Je