Linux怎么登录redis数据库,linux下redis数据库的简单使用
一、redis简介Redis是一个key-value存储系统。和 Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的value类型,除了和string外,还支持lists(链表)、 sets(集合)和zsets(有序集合)几种数据类型。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作, 而且这些操作都是原子性的。二、redis的
一、redis简介
Redis是一个key-value存储系统。和 Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的value类型,除了和string外,还支持lists(链表)、 sets(集合)和zsets(有序集合)几种数据类型。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作, 而且这些操作都是原子性的。
二、redis的安装
目前最新分支为3.2
1 git clone -b 3.2 https://github.com/antirez/redis.git
下载完成之后进入redis目录,编译安装直接是
make
make install
编译安装完成直接运行
redis-server就可以启用redis服务,可以用netstat命令查看redis监听的端口(默认是6379)
redis服务起来之后我就可以进行相应的测试看数据库是否安装成功:
在命令行输入redis-cli启用redis客户端:
输入一下命令测试redis是否安装成功
127.0.0.1:6379>ping
PONG127.0.0.1:6379> settest hello
OK127.0.0.1:6379> gettest"hello"
127.0.0.1:6379>
更多redis命令请参考redis命令手册,这上面详细介绍了redis-cli各种命令的用法
至此,redis数据库安装完成
三、redis c 接口库的安装
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便
在这里简单介绍一下redis的C接口库:
hiredis是redis的C接口库,使用之前我们要先下载安装hiredis,下载地址:https://github.com/redis/hiredis.git
git clone https://github.com/redis/hiredis.git
下载之后进入hiredis目录
make
make install
下面进行hredis库中几个常用函数介绍
(1)redisConnect函数
该函数用于连接redis数据库
函数原型:
1 redisContext *redisConnect(const char *ip, intport);2 //说明:该函数用来连接redis数据库,参数为数据库的ip地址和端口,一般redis数据库的端口为6379该函数返回一个结构体redisContext。
redisContext结构体定义如下:
1 /*Context for a connection to Redis*/
2 typedef structredisContext {3 int err; /*Error flags, 0 when there is no error*/
4 char errstr[128]; /*String representation of error when applicable*/
5 intfd;6 intflags;7 char *obuf; /*Write buffer*/
8 redisReader *reader; /*Protocol reader*/
9
10 enumredisConnectionType connection_type;11 struct timeval *timeout;12
13 struct{14 char *host;15 char *source_addr;16 intport;17 } tcp;18
19 struct{20 char *path;21 } unix_sock;22
23 } redisContext;
(2)redisCommand函数
该函数用于执行redis的命令;
函数原型:
1 void *redisCommand(redisContext *c, const char *format, ...);2 /*说明:该函数执行命令,就如sql数据库中的SQL语句一样,只是执行的是redis数据库中的操作命令,3 第一个参数为连接数据库时返回的redisContext,4 后面为可变参数列表,跟C语言printf函数类似,5 返回值为void*,一般强制转换成为redisReply类型的进行进一步的处理。*/
用法:
redisReply *reply = (redisReply*)redisCommand(c, cmd);
(3)redisRelpyObject函数
还函数用于释放redisCommand返回值redisReply所占用的内存
1 /*Free a reply object*/
2 void freeReplyObject(void *reply)3 //该函数用于回收释放redisCommand返回值redisReply所占用的内存
(4)redisFree函数
该函数用于释放一个redis数据库的连接
1 void redisFree(redisContext *c)2 //用于释放redisConnect产生的连接
下面写一个简单的hredis c接口的redis测试程序:
#include #include#include#include#include#include#include
#define REDIS_HOST "127.0.0.1"
#define REDIS_PORT 6379
voidredis_cli()
{
redisContext*c =NULL;
redisReply*r =NULL;
c=redisConnect(REDIS_HOST, REDIS_PORT);if(NULL ==c) {
printf("connect redis server failure\n");return;
}
printf("redis connect sucess ip: %s port: %d\n", REDIS_HOST, REDIS_PORT);char *cmd1 = "set test hello";
r= (redisReply*)redisCommand(c, cmd1);if (NULL ==r) {
printf("Redis Command error [%s]\n", cmd1);
redisFree(c);return;
}if (r->type ==REDIS_REPLY_ERROR ) {
printf("Redis Command[%s], error:%s\n", cmd1, r->str);
freeReplyObject(r);
redisFree(c);return;
}
printf("redis command execute success[%s]\n", cmd1);
freeReplyObject(r);char *cmd2 = "get test";
r= (redisReply*)redisCommand(c, cmd2);if (NULL ==r) {
printf("Redis Command error [%s]\n", cmd2);
redisFree(c);return;
}if (r->type ==REDIS_REPLY_ERROR ) {
printf("Redis Command[%s], error:%s\n", cmd2, r->str);
freeReplyObject(r);
redisFree(c);return;
}
printf("get test value is: %s\n", r->str);
freeReplyObject(r);const char* cmd3 = "strlen test";
r= (redisReply*)redisCommand(c, cmd3);if ( r->type !=REDIS_REPLY_INTEGER)
{
printf("Failed to execute command[%s]\n", cmd3);
freeReplyObject(r);
redisFree(c);return;
}
printf("The length of ‘test‘ is %d.\n", r->integer);
freeReplyObject(r);
redisFree(c);return;
}int main(int argc, char **argv)
{
redis_cli();return 0;
}
运行结果:
[[email protected] 3rd]# ./test
redis connect sucess ip:127.0.0.1 port: 6379redis command execute success[settest hello]get test value is: hello
The length of‘test‘ is 5
原文:http://www.cnblogs.com/wenqiang/p/5506744.html
更多推荐
所有评论(0)