使用字符串键储存数字值

每当用户将一个值储存到字符串键里面的时候,Redis 都会对这个值进行检测,如果这个值能够被解释为以下两种类型的其中一种,那么 Redis 就会把这个值当做数字来处理:

  • 一种是能够使用 C 语言的 long long int 类型储存的整数,在大多数系统中,这种类型储存的都是 64 位长度的有符号整数,取值范围介于 -92233720368547758089223372036854775807 之间;

  • 第二种是能够使用 C 语言的 long double 类型储存的浮点数,在大多数系统中,这种类型储存的都是 128 位长度的有符号浮点数,取值范围介于 3.36210314311209350626e-49321.18973149535723176502e+4932L 之间。

作为例子,表 1-2 展示了一些不同类型的值,并说明了 Redis 对它们的解释方式。


表 1-2 一些能够被 Redis 解释为数字的例子

Redis 解释这个值的方式
10086解释为整数。
+894解释为整数。
-123解释为整数。
3.14解释为浮点数。
+2.56解释为浮点数。
-5.12解释为浮点数。
12345678901234567890这个值虽然是整数,但是因为它的大小超出了 long long int 类型能够容纳的范围,所以只能被解释为字符串。
3.14e5因为 Redis 不能解释使用科学记数法表示的浮点数,所以这个值只能被解释为字符串。
"one"解释为字符串。
"123abc"解释为字符串。

为了能够更方便地处理那些使用字符串键储存的数字值,Redis 提供了一系列加法操作命令以及减法操作命令,用户可以通过这些命令直接对字符串键储存的数字值执行加法操作或减法操作,本章接下来将对这些命令进行介绍。