上篇文章我们介绍了如何在 Linux 中安装 Redis,本文我们来了解下 Redis 中的五种数据类型。
本文是 Redis 系列的第二篇文章,了解前面的文章有助于更好的理解本文:
1.Linux 上安装 Redis
五大数据类型介绍
redis 中的数据都是以 key/value 的形式存储的,五大数据类型主要是指 value 的数据类型,包含如下五种:
STRING
STRING 是 redis 中最基本的数据类型,redis 中的 STRING 类型是二进制安全的,即它可以包含任何数据,比如一个序列化的对象甚至一个 jpg 图片,要注意的是 redis 中的字符串大小上限是 512M。
LIST
LIST 是一个简单的字符串列表,按照插入顺序进行排序,我们可以从 LIST 的头部 (LEFT) 或者尾部 (RIGHT) 插入一个元素,也可以从 LIST 的头部 (LEFT) 或者尾部 (RIGHT) 弹出一个元素。
HASH
HASH 类似于 Java 中的 Map,是一个键值对集合,在 redis 中可以用来存储对象。
SET
SET 是 STRING 类型的无序集合,不同于 LIST,SET 中的元素不可以重复。
ZSET
ZSET 和 SET 一样,也是 STRING 类型的元素的集合,不同的是 ZSET 中的每个元素都会关联一个 double 类型的分数,ZSET 中的成员都是唯一的,但是所关联的分数可以重复。
OK,通过上面的介绍,相信小伙伴们对五大数据类型都有一个大致的认识了,接下来我们就来看看这五种数据类型要怎么操作。
key 相关的命令
由于五大数据类型的数据结构本身有差异,因此对应的命令也会不同,但是有一些命令不管对于哪种数据类型都是存在的,我们今天就先来看看这样一些特殊的命令。
首先通过 redis-server redis.conf 命令启动 redis,再通过 redis-cli 命令进入到控制台中,如下:
首先我们可以通过 set 命令插入一条记录:
127.0.0.1:6379> set k1 v1
OK
DEL 命令
看到 OK 表示插入成功。通过 DEL 命令我们可以删除一个已经存在的 key,如下:
127.0.0.1:6379> DEL k1
(integer) 1
看到(integer) 1 表示数据已经删除成功。
DUMP 命令
DUMP 命令可以序列化给定的 key,并返回序列化之后的值:
127.0.0.1:6379> DUMP k1
“\x00\x02v1\b\x00\xe6\xc8\\\xe1bI\xf3c”
EXISTS 命令
EXISTS 命令用来检测一个给定的 key 是否存在,如下:
127.0.0.1:6379> EXISTS k1
(integer) 1
127.0.0.1:6379> EXISTS k2
(integer) 0
127.0.0.1:6379>
上面的运行结果表示 k1 存在而 k2 不存在。
TTL 命令
TTL 命令可以查看一个给定 key 的有效时间:
127.0.0.1:6379> TTL k1
(integer) -1
127.0.0.1:6379> TTL k2
(integer) -2
- 2 表示 key 不存在或者已过期;- 1 表示 key 存在并且没有设置过期时间(永久有效)。当然,我们可以通过下面的命令给 key 设置一个过期时间:
EXPIRE 命令
EXPIRE 命令可以给 key 设置有效期,在有效期过后,key 会被销毁。
127.0.0.1:6379> EXPIRE k1 30
(integer) 1
127.0.0.1:6379> TTL k1
(integer) 25
127.0.0.1:6379>
30 表示 30 秒,TTL k1 返回 25 表示这个 key 的有效期还剩 25 秒。
PERSIST 命令
PERSIST 命令表示移除一个 key 的过期时间,这样该 key 就永远不会过期:
127.0.0.1:6379> EXPIRE k1 60
(integer) 1
127.0.0.1:6379> ttl k1
(integer) 57
127.0.0.1:6379> PERSIST k1
(integer) 1
127.0.0.1:6379> ttl k1
(integer) -1
PEXPIRE 命令
PEXPIRE 命令的功能和 EXPIRE 命令的功能基本一致,只不过这里设置的参数是毫秒:
127.0.0.1:6379> PEXPIRE k1 60000
(integer) 1
PTTL 命令
PTTL 命令和 TTL 命令基本一致,只不过 PTTL 返回的是毫秒数:
127.0.0.1:6379> PTTL k1
(integer) 25421
KEYS 命令
KEYS 命令可以获取满足给定模式的所有 key,比如:
127.0.0.1:6379> KEYS *
1) “k3”
2) “k2”
3) “k1”
KEYS * 表示获取所有的 KEY,* 也可以是一个正则表达式。
OK,key 相关的命令我们就介绍这么多,当然还有很多其他的,小伙伴们可以参考官方文档 http://www.redis.cn/commands….。小伙伴在看官方文档时,有什么问题欢迎留言讨论。
更多资料请关注公众号: