系统 CentOS7
Redis 官网下载 https://redis.io/download
1.下载解压
[root@TestServer-DFJR programs]# /usr/local/programs
[root@TestServer-DFJR programs]# wget http://download.redis.io/releases/redis-4.0.1.tar.gz
[root@TestServer-DFJR programs]# tar xzf redis-4.0.1.tar.gz
[root@TestServer-DFJR programs]# mv redis-4.0.1 redis4 #移动到自己想放置的地方
2.编译安装
[root@TestServer-DFJR programs]# cd /usr/local/programs/redis4
安装(使用 PREFIX 指定安装目录):
# make PREFIX=/usr/local/programs/redis4 install
安装完成后,可以看到/usr/local/programs/redis4 目录下有一个 bin 目录,bin 目录里就是 redis 的命令脚本:
[root@TestServer-DFJR redis4]# ls
00-RELEASENOTES BUGS COPYING INSTALL MANIFESTO redis.conf runtest-cluster sentinel.conf tests
bin CONTRIBUTING deps Makefile README.md runtest runtest-sentinel src utils
[root@TestServer-DFJR redis4]#
4.执行Redis-server 命令,启动Redis 服务
[root@TestServer-DFJR redis4]# cd bin
[root@TestServer-DFJR bin]# ./redis-server
注意:这里直接执行Redis-server 启动的Redis服务,是在前台直接运行的(效果如上图),也就是说,执行完该命令后,如果Lunix关闭当前会话,则Redis服务也随即关闭。正常情况下,启动Redis服务需要从后台启动,并且指定启动配置文件。
5.后台启动redis服务
a)首先编辑conf文件,将daemonize属性改为yes(表明需要在后台运行)
vi redis.conf
b)再次启动redis服务,并指定启动服务配置文件
bin/redis-server redis.conf
6. redis.conf的其他关键配置
daemonize yes #以后台daemon方式运行redis
port 6379 #默认端口
bind 127.0.0.1 10.6.30.191 #默认绑定本机所有ip地址,为了安全,可以只监听内网ip
pidfile /var/run/redis_6379.pid #redis以后台运行,默认pid文件路径/var/run/redis.pid
requirepass 123456 #设置redis数据库连接密码
6.服务端启动成功后,执行redis-cli启动Redis 客户端,查看端口号。
redis-cli -a 123456 #连接redis数据库,注意:-a后面跟redis数据库密码
默认是没有密码的,直接输入
src/redis-cli
然后就可以执行redis命令了
8. 停止服务器
在客户端里输入 shutdown
退出客户端是 exit
9.卸载redis服务
直接把相关目录和文件删除即可
10. 设置环境变量
将 Redis 添加到环境变量中:
# vi /etc/profile
在最后添加以下内容:
## Redis env
export PATH=$PATH:/usr/local/programs/redis4/bin
使配置生效:
# source /etc/profile
现在就可以直接使用 redis-cli 等 redis 命令了:
源文章出处https://www.cnblogs.com/zsg88/p/8321644.html
C语言使用hiredis访问redis
Hiredis
是Redis数据库的简约C客户端库。它是简约的,因为它只是增加了对协议的最小支持,但是同时它使用了一个高级别的 printf-like API,所以对于习惯了 printf 风格的C编程用户来说,其非常容易使用,而且API中没有明确的绑定每个 Redis 命令。
Github: https://github.com/redis
安装hiredis
编译安装:
Copy
$ git clone
https://github.com/redis/hiredis.git
$ cd hiredis
$ make
$ make install
下面是make install
的输出:
Copy
mkdir -p /usr/local/include/hiredis /usr/local/include/hiredis/adapters /usr/local/lib cp -pPR hiredis.h async.h read.h sds.h /usr/local/include/hiredis cp -pPR adapters/*.h /usr/local/include/hiredis/adapters cp -pPR libhiredis.so /usr/local/lib/libhiredis.so.0.13 cd /usr/local/lib && ln -sf libhiredis.so.0.13 libhiredis.so cp -pPR libhiredis.a /usr/local/lib mkdir -p /usr/local/lib/pkgconfig cp -pPR hiredis.pc /usr/local/lib/pkgconfig
复制动态链接库到lib:
cp libhiredis.so /usr/lib64 /usr/lib
若是32系统只需要运行:
cp libhiredis.so /usr/lib
还需要更新下动态链接库缓存:
/sbin/ldconfig
ldconfig
命令的用途主要是在默认搜寻目录/lib
和/usr/lib
以及动态库配置文件/etc/ld.so.conf
内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*
),进而创建出动态装入程序(ld.so
)所需的连接和缓存文件。缓存文件默认为/etc/ld.so.cache
,此文件保存已排好序的动态链接库名字列表,为了让动态链接库为系统所共享,需运行动态链接库的管理命令ldconfig
,此执行程序存放在/sbin目录下。
ldconfig
通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。
客户端代码
test.c
1 #include <stdio.h>
2 #include <hiredis/hiredis.h>
3
4 int main()
5 {
6 redisContext* conn = redisConnect("127.0.0.1", 6379);
7 if(conn->err) printf("connection error:%s\n", conn->errstr);
8
9 redisReply* reply = redisCommand(conn, "set foo 1234");
10 freeReplyObject(reply);
11
12 reply = redisCommand(conn, "get foo");
13
14 printf("%s\n", reply->str);
15 freeReplyObject(reply);
16
17 redisFree(conn);
18
19 return 0;
20 }
然后:$ gcc test.c -o test -lhiredis
编译是一定要使用-l
连接动态库。
-lstack
告诉编译器要链接lhiredis
库。
运行:
$ ./test 1234
函数原型
redisConnect
redisContext *redisConnect(const char *ip, int port)
说明:该函数用来连接redis数据库,参数为数据库的ip地址和端口,一般redis数据库的端口为6379。
该函数返回一个结构体redisContext
。
redisCommand
void *redisCommand(redisContext *c, const char *format, ...);
说明:该函数执行命令,就如sql数据库中的SQL语句一样,只是执行的是redis
数据库中的操作命令,第一个参数为连接数据库时返回的redisContext
,剩下的参数为变参,就如C标准函数printf
函数一样的变参。
返回值为void*
,一般强制转换成为redisReply
类型的进行进一步的处理。
freeReplyObject
void freeReplyObject(void *reply);
说明:释放 redisCommand
执行后返回的 redisReply
所占用的内存。
redisFree
void redisFree(redisContext *c);
说明:释放 redisConnect()
所产生的连接。
参考
1、Redis:安装、配置、操作和简单代码实例(C语言Client端) - CSDN博客
https://blog.csdn.net/hj19870806/article/details/8724907
2、C语言访问redis(hiredis) - CSDN博客
https://blog.csdn.net/sole_cc/article/details/38015765
3、error while loading shared libraries问题解决 - CSDN博客
https://blog.csdn.net/qgd19931120/article/details/50971142
4、ldconfig命令_Linux ldconfig 命令用法详解:动态链接库管理命令
http://man.linuxde.net/ldconfig?mstqrk=qdwrv1
出处:http://52fhy.cnblogs.com/