写点什么

Redis 客户端服务端命令数据交换

用户头像
escray
关注
发布于: 2021 年 04 月 08 日
Redis 客户端服务端命令数据交换

Redis 客户端服务端命令数据交换,以及运维工具。极客时间《Redis 核心技术与实战》专栏学习笔记 24,部分已经作为留言发布,但是留言太多,排在后面的一般很难被大家看到,所以集中发布在这里,欢迎讨论。


题图来自 CacheCloud 的 github 主页

加餐(四) | Redis 客户端如何与服务器端交换命令和数据?


在 macOS 上默认似乎是没有 telnet 的,放狗搜索,似乎是可以安装一个 telnet,也可以使用 ssh 或者 nc 工具。


我尝试使用 ssh 被拒绝了,然后使用 nc 连上了阿里云的 Redis 实例。


#> nc -v r-2zede1d2b3b2b312pd.redis.rds.aliyuncs.com 6379Connection to r-2zede0d1b1b2b564pd.redis.rds.aliyuncs.com port 6379 [tcp/*] succeeded!
复制代码


连接之后,是没有命令提示符的。直接 hello world,需要输入密码


get hello-NOAUTH Authentication required.auth myPassword+OKget hello$5world
复制代码


然后看一下专栏中提到的例子


LRANGE mylist 0 4*5$5hello$14$33.3$12$11set testkey testvalue+OKget testkey$9testvaluehset testhash a 1 b 2 c 3:3put testkey2 testvalue-ERR unknown command `put`, with args beginning with: `testkey2`, `testvalue`,
复制代码


可以看到 mylist 中的值都是使用长字符串类型(RESP Bulk String)来回复的,还能看到 以“:”开头的简单字符串类型(RESP Simple Strings),用“+”号开头的整数类型(RESP Integer)和用“-”号开头的错误类型(RESP Errors)


用“*”号开头的数组编码类型(RESP Arrays)没有看到具体的例子。


最后,关于 Hash 类型的 testhash 和 Sorted Set 类型的 testzset 的例子


hset testhash a 1 b 2 c 3:0hgetall testhash*6$1a$11$1b$12$1c$13zadd testzset 1 "a":1zadd testzset 2 "b":1zadd testzset 3 "c":1zrange testzset 0 3 withscores*6$1a$11$1b$12$1c$13
复制代码
加餐(五) | Redis 有哪些好用的运维工具?

      

作为没有实战经验的小白,只能把本节内容暗自记下,以后需要的时候再回来查询。


运维的时候仅有 info 的信息是明显不够的,否则即使单项指标有问题,也只能依赖于经验值,如果有运维工具的话,就可以看到一段时间内的平均值、正常值、波动情况等等。


Prometheus 之前听说过,现在看来应该是开源系统监控报警框架里面比较成熟的一个了,有机会的话可以学习一下。


如果只运维 Redis 的话,CacheCloud 似乎也是一个不错的选择,不知道除了搜狐之外,有没有其他大厂采用。另外,CacheCloud 团队还写了一本《Redis 开发与运维》。


有一点好奇,为什么中国团队似乎比较喜欢 Redis ?之前介绍的图书也大部分的都是国内原创的,这次介绍的运维工具也大多是国内的。

发布于: 2021 年 04 月 08 日阅读数: 17
用户头像

escray

关注

Let's Go 2017.11.19 加入

Let's Go,用 100 天的时间从入门到入职

评论

发布
暂无评论
Redis 客户端服务端命令数据交换