写点什么

Redis 实战(五)- 字符串,kafka 基本原理

用户头像
极客good
关注
发布于: 刚刚

"world"


如果要获取的键不存在,则返回 nil(空):


127.0.0.1:6379> get not_exist_key


(nil)


3、批量设置值


mset key value [key value ...]


下面操作通过 mset 命令一次性设置 4 个键值对:


127.0.0.1:6379> mset a 1 b 2 c 3 d 4


OK


4、批量获取值


mget key [key ...]


下面操作批量获取了键 a、b、c、d 的值:


127.0.0.1:6379> mget a b c d


  1. "1"

  2. "2"

  3. "3"

  4. "4"


如果有些键不存在,那么它的值为 nil(空),结果是按照传入键的顺序返回:


127.0.0.1:6379> mget a b c f


  1. "1"

  2. "2"

  3. "3"

  4. (nil)


批量操作命令可以有效提高开发效率,假如没有 mget 这样的命令,要执行 n 次 get 命令,图示如下:



使用 mget 命令后,要执行 n 次 get 命令操作,图示如下:



Redis 可以支撑每秒数万的读写操作,但是这指的是 Redis 服务端的处理能力,对于客户端来说,一次命令除了命令时间还是有网络时间,假设网络时间为 1 毫秒,命令时间为 0.1 毫秒(按照每秒处理 1 万条命令算),那么执行 1000 次 get 命令和 1 次 mget 命令的区别图示如下,因为 Re


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


dis 的处理能力已经足够高,对于开发人员来说,网络可能会成为性能的瓶颈。



学会使用批量操作,有助于提高业务处理效率,但是要注意的是每次批量操作所发送的命令数不是无节制的,如果数量过多可能造成 Redis 阻塞或者网络拥塞。


5、计数


incr key


incr 命令用于对值做自增操作,返回结果分为三种情况:


·值不是整数,返回错误。


·值是整数,返回自增后的结果。


·键不存在,按照值为 0 自增,返回结果为 1。


例如对一个不存在的键执行 incr 操作后,返回结果是 1:


127.0.0.1:6379> exists key


(integer) 0


127.0.0.1:6379> incr key


(integer) 1


再次对键执行 incr 命令,返回结果是 2:


127.0.0.1:6379> incr key


(integer) 2


如果值不是整数,那么会返回错误:


127.0.0.1:6379> set hello world


OK


127.0.0.1:6379> incr hello


(error) ERR value is not an integer or out of range


除了 incr 命令,Redis 提供了 decr(自减)、incrby(自增指定数字)、decrby(自减指定数字)、incrbyfloat(自增浮点数):


decr key


incrby key increment


decrby key decrementincrbyfloat key increment 很多存储系统和编程语言内部使用 CAS 机制实现计数功能,会有一定的 CPU 开销,但在 Redis 中完全不存在这个问题,因为 Redis 是单线程架构,任何命令到了 Redis 服务端都要顺序执行。到此字符串介绍完成。

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
Redis实战(五)-字符串,kafka基本原理