关于redis的安装和环境搭建

首先,进入redis官网,查看下载最新版本的redis

https://redis.io/
图片描述

下载完成后回到Linux中,将下载的tar.gz包解压

建议放在/usr/local/src下

图片描述

解压完成后,在local下建立目标安装目录,在管理员权限在执行make install命令,指定安装目录

图片描述
安装成功如下:

图片描述

将redis作为一个服务添加进自启动

将安装文件目录下的服务脚本redis_init_script拷贝到自己的/etc/init.d/目录下:
图片描述
此时还不能添加进服务中,我们还需要对脚本做一些修改,vim刚才复制过来的脚本,修改如下:
图片描述

$EXEC $CONF & ------》 转入后台运行


将redis配置文件拷贝到/etc/redis/${REDISPORT}.conf中

创建一个/etc/的目录,将redis的配置文件放入其中
我在/etc下新建了一个redis目录,拷贝过去注意对应服务脚本中指定的conf号
图片描述
图片描述

这时准备工作完成,可以将redis加入服务中让它启动了

图片描述
可以在/etc/rc.d/rc.loacl文件中添加一下,让redis开机自启服务端
图片描述

图片描述

最后我们可以将redis加入系统命令中

修改/etc/profile,将redis所在目录添加进系统环境变量中:
图片描述
应用这个文件

图片描述

此时我们就可以直接通过命令直接调用了

图片描述

关于redis的常用命令

可以在官网用测试端试用:http://try.redis.io/
增加:set (key) (value)
删除:del (key)
获取:get (key)
查询:exists (key)
设置过期时间:expire (key) (time)
移除过期时间:persist (key)
返回key所对应的value类型:type (key)
用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始:setrange (key) (offset) (value)
返回key所对应的字符串长度:strlen (key)

其他对应命令可参照:http://www.runoob.com/redis/r...

对于用C++代码来操作redis

首先网上提供api的很多,这里我选用的是hiredis,这个是我能找到的最方便的,而且据传闻用的人比较多,人多的自然使用起来功能比较齐全
首先进入github下载库文件:https://github.com/redis/hiredis
图片描述
下载完成后执行进入目录执行make命令
图片描述
随后执行安装(复制运行库)
图片描述
执行ldconfig命令重新挂入库路径(当然重启也可以,重启的话系统会自动执行该操作)

图片描述

之后就可以测试运行啦,试编译这个文件:

#include <hiredis/hiredis.h>
#include <iostream>
#include <string>
int main(int argc, char **argv)
{
    struct timeval timeout = {2, 0}; //2s的超时时间
                                     //redisContext是Redis操作对象
    redisContext *pRedisContext = (redisContext*)redisConnectWithTimeout("127.0.0.1", 6379, timeout);
    if((NULL == pRedisContext) || (pRedisContext->err))
    {
        if(pRedisContext)
        {
            std::cout << "connect error:" << pRedisContext->errstr << std::endl;
        }
        else
        {
            std::cout << "connect error: can't allocate redis context." << std::endl;
        }
        return -1;
    }
    //redisReply是Redis命令回复对象 redis返回的信息保存在redisReply对象中
    redisReply *pRedisReply = (redisReply*)redisCommand(pRedisContext, "INFO"); //执行INFO命令
    std::cout << pRedisReply->str << std::endl;
    //当多条Redis命令使用同一个redisReply对象时
    //每一次执行完Redis命令后需要清空redisReply 以免对下一次的Redis操作造成影响
    freeReplyObject(pRedisReply);
    return 0;
}

对了,记得要g++编译时加入动态链接库hiredis
图片描述
——————————————————完成————————————————————

资料参考:
http://www.cnblogs.com/_popc/...
http://www.runoob.com/redis/r...
http://try.redis.io/


且行且歌_C
62 声望8 粉丝

逝者如斯夫,不舍昼夜