redis管道、事务、发布订阅、过期、过滤器等常用高级功能小记(上篇)

redis拥有五种数据类型,不同类型的数据有不同的特性,恰当的使用可以实现很多特别的功能,除此之外,redis自身也封装了或者支持一些特殊的操作,可以称为redis的高级功能。
redis基本数据结构和应用场景介绍可以参考之前的博客
redis数据类型要点知识及应用场景
redis高级功能很多,这里只准备记录如下几种:

管道
事务
发布/订阅
过期
布隆过滤器

管道

个人理解,管道操作应该不算redis独有的特性,只是它也支持而已。
redis是基于客户端-服务端的TCP服务,通常一个客户端向服务端发起请求并监听socket返回,这个过程是阻塞模式,会等待服务端响应了才能进行下一个操作。
这种模式在同一个客户端多次操作的情景下,交互次数也非常多,redis管道实际就是把多个客户端操作请求一次发送给服务端,然后服务端再一次返回,有点像打包传送的过程。
少了交互次数,从某种意义上来讲,是能提升性能的。
redis管道操作基本命令如下,使用到了linux的echo和nc命令:

echo -e "set k1 123456\nget k1" | nc loalhost 6379

上边示例中就是给redis的k1设值为123456,然后再get出k1的值,两个操作一次发送个服务端,使用nc建立tcp连接交互。
操作本身比较简单,但是需要知道echo和nc的一些用法,我也刚好借此机会多了解一点。
一开始我对echo的了解其实就是写文件,因为本身用的也不多,但是仔细了解了一下,发现echo能做的事其实蛮多的

echo输出到命令行

echo "test"
echo test

以上两个命令实际效果是一样的,都会在命令行界面输出echo后边的字符串内容,这应该也是echo最简单的用法了。

echo写入到文件

echo test> test.txt

echo追加到文件

echo test>> test.txt

echo转义

echo -e "set k1 2\nget k1"

这里-e参数用来处理转义,上边示例其实就是一开始redis管道操作示例内容,引号中间的\n是换行符的意思,加了-e参数就会解析成换行。

echo使用变量输出

这个地方其实是要写linux脚本的,以下是简单shell脚本示例,例如有一个文件叫test.sh,内容如下:

#!/bin/sh
read name
echo "$name is me"

执行上述shell脚本,就会先让输入一个内容,赋值给变量name,之后会在下一行输出。

chmod文件权限

在上边实例中,要模拟echo使用变量并输出,又使用到了简单的shell脚本,而脚本文件在初始创建的时候是只有读写权限的,不能执行,因此就需要chmod命令为文件修改权限,刚好也再补充一下这个命令相关的一些知识。
文件权限一般使用八进制数字或者英文字符表示:

4代表可读,字符r;
2代表可写,字符w;
1代表可执行,字符x;
0代表无权限,字符-;
例如要给文件test.sh赋予所有用户可读可写可执行的权限,如下三个命令都可以,作用 一样,不过看起来数字方式最方便:

chmod 777 test.sh;
chmod u=rwx,g=rwx,o=rwx test.sh
chmod ugo=rwx test.sh

u代表文件所属用户
g代表文件所属用户组
o代表其他用户

nc

上述管道操作还用到了nc命令,nc是netcat的命令,和echo一样也有很多参数和用法,不加参数默认建立一个tcp连接,例如:

nc 127.0.0.1 6379

上述操作会以tcp方式连接到本地的redis服务,之后我们可以进行像redis-cli进入redis客户端之后的操作一样的操作。
nc除了建立普通连接,还有一个很方便的功能就是传输文件,一方建立tcp连接接收,一方建立tcp连接传送,接收方使用-l参数监听,实例如下:

nc -l 9999 > t.txt

服务端发送示例如下:

nc localhost 999 <a.txt

nc参数较多,非专业运维可能用到的就不会太多,如果想更详细的了解,更多nc参数和用法内容可参考如下链接中的内容:
https://www.cnblogs.com/guge-94/p/10719016.html

相关文章

缓存和redis相关基础知识
Linux中redis安装及软件安装相关Linux知识要点
redis数据类型要点知识及应用场景
redis管道、事务、发布订阅、过期、过滤器等常用高级功能小记(上篇)
redis管道、事务、发布订阅、过期、过滤器等常用高级功能小记(下篇)
springboot集成和使用redis常用功能

涂宗勋 CSDN认证博客专家 web安全 系统安全 安全架构
【若想不迷路,记得点关注,动动小手指,点点全是福】

6年java工作经验,现居湖北武汉,有过支付、OA、CA、OAUTH2等工作经验,现从事车联网行业。
爱好分享,个人博客blog.tzxcode.cn,微信tuzongxun,qq1160569243,欢迎来撩。
©️2020 CSDN 皮肤主题: 成长之路 设计师: Amelia_0503 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值