redis相比很多人都知道,是一个内存式的key-value数据库,存取速度极快,使用非常简单,支持多种语言。本文对其使用进行一个简要说明,并进行简单测试。
  1.下载与编译
  可以从redis官网下载新的源码包:http://www.redis.io/
  编译十分简单make既可。
  2.redis安装与配置
  实际上并不需要安装。redis编译后会在src目录下生成redis-server,它是一个可执行文件,即启动redis服务。不过它需要一个配置文件。配置文件写法网上很多了,这里直接给出一个示例:
daemonize yes
pidfile /tmp/redis/var/redis.pid
port 6379
timeout 300
loglevel debug
logfile /tmp/redis/var/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /tmp/redis/var/
appendonly no
appendfsync always
#glueoutputbuf yes
#shareobjects no
#shareobjectspoolsize 1024
  将其保存为redis.conf
  然后直接运行./redis-server redis.conf可以启动redis服务了,是不是很方便呢?
  3.C/C++访问redis
  在redis源码目录下有一个deps目录,下面有一个hiredis目录。redis编译时会自动编译该目录生成libhiredis.a,通过引用hiredis.h 和 libhiredis.a可以访问redis了。具体步骤如下:
  1)创建一个redisContext
  2)通过redisContext执行命令
  3)从返回redisReply中获取所需数据
  代码如下:
<pre code_snippet_id="151033" snippet_file_name="blog_20140110_2_9509153" name="code" class="cpp">redisContext *  c = redisConnect((char *)"192.168.150.135",6379);
const char * pData = "this is a test";
<pre code_snippet_id="151033" snippet_file_name="blog_20140110_2_9509153" name="code" class="cpp">redisReply *reply1 = (redisReply *)redisCommand(c,"SET 100 %s",pData);
<pre code_snippet_id="151033" snippet_file_name="blog_20140110_2_9509153" name="code" class="cpp"><pre code_snippet_id="151033" snippet_file_name="blog_20140110_2_9509153" name="code" class="cpp"><pre code_snippet_id="151033" snippet_file_name="blog_20140110_2_9509153" name="code" class="cpp">freeReplyObject(reply1);</pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<pre></pre>
<p></p>
<pre></pre>
<pre></pre>
<br>
<pre code_snippet_id="151033" snippet_file_name="blog_20140110_3_730653" name="code" class="cpp"><pre code_snippet_id="151033" snippet_file_name="blog_20140110_3_730653" name="code" class="cpp"><pre code_snippet_id="151033" snippet_file_name="blog_20140110_3_730653" name="code" class="cpp">redisReply *reply2 = (redisReply *)redisCommand(c,"GET 100");</pre>
<pre></pre>
<pre></pre>
printf("%s ",reply2->str);<br>
freeReplyObject(reply2);<br>
<pre></pre>
<pre></pre>
<pre></pre>