关灯
护眼 字体:大
中
小
上一章
章节列表
下一章
字符串(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提示您,本章没有阅读完,点击下一页进入下一页阅读!
上一章
章节列表
下一章