首页

5.2字符串的创建、查询和修改

关灯 护眼    字体:

上一章 章节列表 下一章


字符串(Strings)是Redis的基本数据结构之一。它由Key和Value两部分组成。

Redis的字符串可以简单地类比为Python的变量。其中,Key相当于变量名,Value相当于变量值。



5.2.1 使用redis-cli实现


本小节将在终端中使用redis-cli连接Redis,查看当前有哪些Key,结果如图5-8所示。

图5-8 使用redis-cli连接Redis并查看当前数据

1.创建字符串

往Redis中添加一条字符串的命令为:

set key value

其中:

● key可以是数字、大小写字母、下画线或者中文。

● value可以是任意内容。

往Redis中添加一个字符串,使用的关键字为set。假设它的Key为“give_me_a_world”,它的值为“OK”,那么可以使用如下命令来实现:

set give_me_a_world OK

2.查询字符串

添加完成后,可以查看Redis里面有多少Key,结果如图5-9所示。

图5-9 字符串已经被成功添加到了Redis中

提示:

虽然Key可以使用中文,但是不建议使用。因为在列出Redis当前所有Key时,中文内容会变得难以阅读,如图5-10所示。

其中的“\xe4\xb8\xad\xe6\x96\x87”对应的就是“中文”这两个汉字。

图5-10 列出Redis所有Key时,中文会变成Unicode码

3.读取字符串

(1)从Redis中读取一个字符串的值。

使用的关键字为“get”。例如:

get give_me_a_world

运行效果如图5-11所示。

(2)从Redis中读取一个字符串。

命令格式为:

get key

如果获取一个不存在的Key,则会返回(nil),如图5-12所示。

图5-11 从Redis中获取一个字符串的值

图5-12 获取一个不存在的Key

如果Redis中有中文Key,则也可以获取中文Key对应的值,如图5-13所示。

图5-13 获取中文Key

提示:

从图5-13中可以看出:如果字符串的值为中文,那么在redis-cli里获取出的中文值是难以阅读的;但中文Key里的内容无论是英文还是数字,在redis-cli里获取后都可以正常显示。

可能有读者会认为,从“set”和“get”的用法来看,Redis 的字符串真是太简单了。但实际上,在Redis中操作字符串有24个不同的命令,每一个命令还有多种不同的参数。“set”与“get”只是其中的两个。由于篇幅所限,本书会挑选其中几条重要的命令来讲解。

4.修改Key里面的值

如果要修改一个Key里面的值,则使用以下命令即可(如图5-14所示):

set key 新的值

修改Key里面的值有以下几种情况:

(1)如果Redis不存在这个Key,那么使用“set”命令可以创建它;如果Redis里面已经有了这个Key,那么使用“set”命令可以用新的值覆盖旧的值。

提示:

如果不希望set命令覆盖旧的值怎么办呢?可以使用一个参数“NX”。如果一个Key已经存在于Redis中,那么就不覆盖,直接放弃操作。命令格式如下,运行效果如图5-15所示。

set key value NX

图5-14 set命令直接覆盖原有值

图5-15 如果Key已经存在,就放弃操作

(2)如果需要做的修改是给字符串的末尾加上其他字符串,则可以不使用“set”命令,而改用“append”命令。

格式为:

append key value

运行效果如图5-16所示。

(3)如果值的内容有空格,那么直接添加值就会报错。为防止报错,则需要使用双引号把有空格的内容包起来,格式如下:

set key "word1 word2 word3"

运行效果如图5-17所示。

图5-16 使用append命令追加字符

图5-17 使用双引号“包”住有空格的值

字符串作为一个数据结构,虽然名为“字符串”(Strings),但它是可以保存数字的,如图5-18所示。

图5-18 字符串也可以保存数字

(4)如果需要这个值加减某个数该怎么办呢?这时可以使用命令“incr”“decr”“incrby”或“decrby”。

● Incr会让Key里的数字增加1,具体语法如下:

incr key

● decr会让Key里的数字减少1,具体语法如下:

decr key

● incrby会让Key里的数字增加n,具体语法如下:

incrby key n

● decrby会让Key里的数字减少n,具体语法如下:

decrby key n

运行效果如图5-19所示。

图5-19 对值为数字的字符串进行增减操作

从图5-19中也可以看到,执行完这些命令后,Redis直接返回的就是结果,这个结果与“get”获得的结果是一样的。



5.2.2 使用Python实现


Pytho
m.qiduwx.com提示您,本章没有阅读完,点击下一页进入下一页阅读!

上一章 章节列表 下一章