Linux平台redis安装

本文编写时候的测试平台:腾讯云轻量应用服务器
操作系统:ubuntu18.4

  1. 安装包下载

英文官方: https://redis.io/

中文官方: http://redis.cn/

  1. 安装

make

sudo make install

  1. redis中有两个角色

# 服务器 - 启动

redis-server # 默认启动

redis-server confFileName # 根据配置文件的设置启动

# 客户端

redis-cli # 默认连接本地, 绑定了6379默认端口的服务器

redis-cli -p 端口号

redis-cli -h IP地址 -p 端口 # 连接远程主机的指定端口的redis

# 通过客户端关闭服务器

shutdown

# 客户端的测试命令

ping [MSG]

安装完成之后测试验证

  1. 打开两个终端 先运行服务器 redis-server

Linux redis 卸载与安装 linux 安装redis-cli_Linux redis 卸载与安装

  1. 运行客户端 redis-cli

操作redis的api

hiredis 安装下载

下载地址: http://redis.cn/clients.html#c

解压缩之后 进入源码目录

make && sudo make install

编写测试例程

myredis_test

#include <stdio.h>
#include <hiredis.h>

int main()
{
    // 1. 连接redis服务器
    redisContext* c = redisConnect("127.0.0.1", 6379);
    if (c->err != 0)
    {
        return -1;
    }
    // 2. 执行redis命令
    void *prt = redisCommand(c, "hmset user userName zhang3 passwd 123456 age 23 sex man");
    redisReply* ply = (redisReply*)prt;
    if(ply->type == 5)
    {
        // 状态输出
        printf("状态: %s\n", ply->str);
    }
    freeReplyObject(ply);

    // 3. 从数据库中读数据
    prt = redisCommand(c, "hgetall user");
    ply = (redisReply*)prt;
    if(ply->type == 2)
    {
        // 遍历
        for(int i=0; i<ply->elements; i+=2)
        {
            printf("key: %s, value: %s\n", ply->element[i]->str, ply->element[i+1]->str);
        }
    }
    freeReplyObject(ply);

    redisFree(c);
    return 0;
}

编译时候的头文件地址

/usr/local/include/hiredis/hiredis.h

编译时候的库文件地址

/usr/local/lib

编译命令

gcc -o myredis myredis.c -I/usr/local/include/hiredis –lhiredis

运行的时候报错

./a.out: error while loading shared libraries: libhiredis.so.0.13: cannot open shared object file: No such file or directory

说明环境变量里面没有动态库的地址

修改 ~/.bash_profile或者/.bashrc或/.bash_profile或系统级别的/etc/profile

添加一下即可

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

source ~/.bash_profile

Linux redis 卸载与安装 linux 安装redis-cli_redis_02

redis配置文件

redis服务器使用,在源码目录中拷贝redis.conf文件出来

常用的配置

# redis服务器绑定谁之后, 谁就能访问redis服务器

# 任何客户端都能访问服务器, 需要注释该选项

bind 127.0.0.1 192.168.1.100

# 保护模式, 如果要远程客户端访问服务器, 该模式要关闭

protected-mode yes

# reids服务器启动时候绑定的端口, 默认为6379

port 6379

# 超时时长, 0位关闭该选项, >0则开启

timeout 0

# 服务器启动之后不是守护进程

daemonize no

# 如果服务器是守护进程, 就会生成一个pid文件

# ./ -> reids服务器启动时候对应的目录

pidfile ./redis.pid

# 日志级别

loglevel notice

# 如果服务器是守护进程, 才会写日志文件

logfile “” -> 这是没写

logfile ./redis.log

# redis中数据库的个数

databases 16

eids服务器启动时候对应的目录

pidfile ./redis.pid

# 日志级别

loglevel notice

# 如果服务器是守护进程, 才会写日志文件

logfile “” -> 这是没写

logfile ./redis.log

# redis中数据库的个数

databases 16

- 切换 select dbID [dbID == 0 ~ 16-1]