爱写作网站,做网站学什么语言,替网站做任务怎么做的,山东机关建设网站老版文章目录 环境安装与配置redis发布-订阅相关命令redis发布-订阅的客户端编程redis的订阅发布的例子 环境安装与配置
sudo apt-get install redis-server # ubuntu命令安装redis服务ubuntu通过上面命令安装完redis#xff0c;会自动启动redis服务#xff0c;通过ps命令确认会自动启动redis服务通过ps命令确认
wxncomwxncom-virtual-machine:~$ ps -ef | grep redis
redis 6594 1 0 16:28 ? 00:00:00 /usr/bin/redis-server 127.0.0.1:6379
wxncom 7003 1827 0 16:29 pts/0 00:00:00 grep --colorauto redis可以看到redis默认工作在本地主机的6379端口上。
而mysql默认运行在3306端口上.
redis发布-订阅相关命令
redis支持多种数据结构,如:
字符串、list列表、set集合、map映射表等结构。
启动redis-cli客户端连接redis server体验一下数据缓存功能如下 redis存储普通key-value
wxncomwxncom-virtual-machine:~$ redis-cli
s127.0.0.1:6379 set abc hello world!
OK
127.0.0.1:6379 get abc
hello world!
127.0.0.1:6379 subscribe 13 // 订阅通道
publish 13 message //向某个通道发送消息 redis发布-订阅的客户端编程
redis支持多种不同的客户端编程语言例如Java对应jedis、php对应phpredis、C对应的则是 hiredis。下面是安装hiredis的步骤
git clone https://github.com/redis/hiredis 从github上下载hiredis客户端进行源码 编译安装
wxncomwxncom-virtual-machine:~/redis$ git clone https://github.com/redis/hiredis
Cloning into hiredis...
fatal: unable to access https://github.com/redis/hiredis/: Failed to connect to github.com port 443: Connection refused
wxncomwxncom-virtual-machine:~/redis$ git clone https://github.com/redis/hiredis
Cloning into hiredis...
remote: Enumerating objects: 4682, done.
remote: Counting objects: 100% (239/239), done.
remote: Compressing objects: 100% (113/113), done.
remote: Total 4682 (delta 140), reused 177 (delta 126), pack-reused 4443
Receiving objects: 100% (4682/4682), 1.68 MiB | 1.93 MiB/s, done.
Resolving deltas: 100% (2924/2924), done.
wxncomwxncom-virtual-machine:~/redis$ ls
hiredis
wxncomwxncom-virtual-machine:~/redis$ cd hiredis/
wxncomwxncom-virtual-machine:~/redis/hiredis$ 如果遇到下面这个情况,多试几次,github那边的服务器很拉胯的,你需要多尝试几次,来建立tcp连接(http协议使用的是 : 基于TCP的传输层协议)
wxncomwxncom-virtual-machine:~/redis$ git clone https://hub.fastgit.org/redis/hiredis
Cloning into hiredis...
fatal: unable to access https://hub.fastgit.org/redis/hiredis/: Failed to connect to hub.fastgit.org port 443: Connection refusedcd hiredismake
wxncomwxncom-virtual-machine:~/redis/hiredis$ make
cc -stdc99 -c -O3 -fPIC -Wall -Wextra -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -Werror -g -ggdb -pedantic alloc.c
cc -stdc99 -c -O3 -fPIC -Wall -Wextra -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -Werror -g -ggdb -pedantic net.c
cc -stdc99 -c -O3 -fPIC -Wall -Wextra -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -Werror -g -ggdb -pedantic hiredis.c
cc -stdc99 -c -O3 -fPIC -Wall -Wextra -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -Werror -g -ggdb -pedantic sds.c
cc -stdc99 -c -O3 -fPIC -Wall -Wextra -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -Werror -g -ggdb -pedantic async.c
cc -stdc99 -c -O3 -fPIC -Wall -Wextra -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -Werror -g -ggdb -pedantic read.c
cc -stdc99 -c -O3 -fPIC -Wall -Wextra -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -Werror -g -ggdb -pedantic sockcompat.c
cc -shared -Wl,-soname,libhiredis.so.1.2.1-dev -o libhiredis.so alloc.o net.o hiredis.o sds.o async.o read.o sockcompat.o
ar rcs libhiredis.a alloc.o net.o hiredis.o sds.o async.o read.o sockcompat.o
cc -stdc99 -c -O3 -fPIC -Wall -Wextra -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -Werror -g -ggdb -pedantic test.c
cc -o hiredis-test -O3 -fPIC -Wall -Wextra -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -Werror -g -ggdb -pedantic -I. test.o libhiredis.a
Generating hiredis.pc for pkgconfig...
wxncomwxncom-virtual-machine:~/redis/hiredis$ 编译成功
sudo make install
拷贝生成的动态库到/usr/local/lib目录下
sudo ldconfig /usr/local/lib
然后.感兴趣的话,或者工作用到了,
可以继续学一下:如何通过C使用hiredis客户端进行subscribe 和publish编程
简单来说 , hiredis就是一个c可用的redis库(但是底层居然是用c语言编写的),现在处于一个知识爆炸的时代,做什么都是库,需要造的轮子越来越少了
redis的订阅发布的例子
比如:
qq聊天 : 有人上线了,我们就订阅他的通道channel,关注他的操作 ; 假如别人给他发了消息 , 我们就通过订阅的管道把消息发给他.