跟着Redis入门指南学习

第三章 5种数据类型

3.1 热身

先了解几个比较基础的命令作为热身,打开redis-cli,跟着样例输入命令来体验下:

1.获取符合规范的健名列表

keys pattern


pattern支持glob风格通配符格式,具体规则如下:

符号

含义


匹配一个字符

*

匹配任意个(包括0个)字符

[]

匹配括号间的任一字符,可以使用“-”符号表示一个范围,如a[b-d]可以匹配"ab","ac","ad"

\x

匹配字符x,用于转义符号。如要匹配"?"就需要使用\?



<span style="font-family: Arial, Helvetica, sans-serif;">127.0.0.1:6379> select 1</span>
OK
127.0.0.1:6379[1]> keys *
(empty list or set)
//选择数据库
127.0.0.1:6379[1]> select 0
OK
//keys 命令   由于我的已经添加过健值  所以你的结果可能会和我不一样
127.0.0.1:6379> keys wjq
1) "wjq"
127.0.0.1:6379> keys test*
1) "testRem"
2) "testboard"
3) "testresult"
4) "test1"
5) "test2"



现在redis中空空如也,为了演示keys命令,首先我的给redis加点料,使用set命令建立一个名为bar的健:


127.0.0.1:6379[1]> set bar 1
OK
127.0.0.1:6379[1]> keys *
1) "bar"


然后使用keys * 就能获取redis中所有的健,当健的数量较多时会影响性能,不建议在生产环境中使用。


提示:redis不区分命令大小写



2.判断一个健是否存在


exists key


如果健存在则返回整数类型1,否则返回0.如:


127.0.0.1:6379[1]> exists bar
(integer) 1
127.0.0.1:6379[1]> exists noexists
(integer) 0



3.删除健


del key [key ...]


可以删除一个或多个健,返回值是删除的健的个数。如


127.0.0.1:6379[1]> del bar
(integer) 1
127.0.0.1:6379[1]> del bar
(integer) 0


第二次执行del命令时因为bar健已经被删除了,实际上并没有删除任何健,所以返回0.


技巧: del命令的参数不支持通配符,但我们可以结合Linux的管道和xargs命令自己实现删除所有符合规则的健。
比如要删除所有以“user:”开头的健,就可以执行redis-cli keys "user:*"|xargs redis-cli del.另外由于del命令支持多个健值作为参数,
所以可以执行redis-cli del 'redis-cli keys "user:*" '来达到同样的效果,但是性能更好。




4.获取健值的数据类型

type key


type 命令用来获取健值的数据类型,返回值可能是String(字符串类型)、hash(散列类型)、list(列表类型)、set(集合类型)、zset(有序集合类型)。例如:


127.0.0.1:6379[1]> set foo 1
OK
127.0.0.1:6379[1]> type foo
string
127.0.0.1:6379[1]> lpush bar 1
(integer) 1
127.0.0.1:6379[1]> type bar
list



lpush 命令的作用是向指定的列表类型健中增加一个元素,如果健不存在则创建它,3.4节会详细介绍。

3.2 字符串类型

3.2.2 命令

1.赋值与取值

set key value
get key


set 和get 是redis中最简单的两个命令,他们实现的功能和编程语言中的读写变量相似,如key = “hello”在redis中是这样表示的:


127.0.0.1:6379[1]> set key hello
OK
127.0.0.1:6379[1]> get key
"hello"



当健不存在时会返回空结果。