Redis学习—— Redis 简介
1. 什么是 Redis?
Redis 是一个使用 ANSI C 编写的开源,支持网络,基于内存,可选持久性的键值对存储数据库。从2015 年 6 月开始,Redis 的开发由 Redis Labs 赞助,而2013 年 5 月至 2015 年6月期间,其开发由 Pivotal 赞助。在 2013 年 5 月之前,其开发由 VMware 赞助。根据月度排行网站 DB-Engines.com 的数据显示,Redis是 最流行的键值对存储数据库。
2. Redis 特点
- Redis 支持数据的持久化,可以将内存的数据保存在磁盘中,重启的时候可以再次加载进行使用,不会造成数据丢失
- Redis 支持五种不同的数据结构类型之间的映射,包括简单的 key/value 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储
- Redis 支持 master-slave 模式的数据备份
3. Redis 中的五种数据类型简介
String(字符串)
String 是 redis 中最基本的数据类型,redis 中的 String 类型是二进制安全的,即它可以包含任何数据,比如是一个序列化的对象或者一个 jpg 图片,但要注意的是 redis 中的字符串上限是 512M
List(列表)
List 是一个简单的字符串列表,按照插入顺序进行排序,我们可以从 List 头部(left)或者尾部(right)插入一个元素,也可以从头部或者尾部弹出一个元素
Hash(哈希)
HASH 类似于 Java 中的 Map ,是一个键值对集合,在 redis 中可以用来存储对象
Set(无序集合)
Set 是 String 类型的无序集合,不同于 List ,Set 中的元素不可以重复
Zset(有序集合)
Zset 和 Set,也是 String 类型的元素的集合,不同的是 Zset 中的每个元素都会关联一个 double 类型的分数,Zset 中的成员都是唯一的,但是所关联的分数可以重复
OK,通过上面的介绍,相信小伙伴们对五大数据类型都有一个大致的认识了,接下来我们就来看看这五种数据类型要怎么操作。
4. key 相关命令
由于五大数据类型的数据结构本身有差异,因此对应的命令也会不同,但是有一些命令不管对于哪种数据类型都是存在的,我们现在就先来看看这样一些特殊的命令
如果还没安装 redis 的朋友可以看一下我另外一篇:
SET 命令
# 设置 k1 的值为 v1,看到 ok 表示设置成功 127.0.0.1:6379> set k1 v1 OK
DEL 命令
# 通过 del 命令删除一个已经存在的 key,看到 (integer) 1 表示删除成功 127.0.0.1:6379> del k1 (integer) 1
dump 命令
# 通过 dump 命令序列化已经存在的 key,并返回序列化后的值 127.0.0.1:6379> dump k1 "\x00\x06action\t\x00|0\xd1\xd31|-r"
exists 命令
# 通过 exists 命令来判断给定 key 是否存在,如果存在,返回 1,否则返回 0 127.0.0.1:6379> exists k1 (integer) 1 127.0.0.1:6379> exists k2 (integer) 0
TTL 命令
# 通过 ttl 命令 查询 key 的过期时间 # -1 表示 key 存在并且没有设置过期时间(永久有效) # -2 表示 key 不存在或者已过期 127.0.0.1:6379> ttl k1 (integer) -1 127.0.0.1:6379> ttl action (integer) -2
expire 命令
# EXPIRE 命令可以给 key 设置有效期,在有效期过后,key 会被销毁,second 表示秒数 127.0.0.1:6379> expire k1 second (integer) 1
persist 命令
PERSIST 命令表示移除一个 key 的过期时间,这样该 key 就永远不会过期
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 # KEYS * 表示获取所有的 KEY, * 也可以是一个正则表达式。 127.0.0.1:6379> KEYS * 1) "k3" 2) "k2" 3) "k1"
OK,key 相关的命令我们就介绍这么多,当然还有很多其他的,小伙伴们可以参考官方文档。小伙伴在看官方文档时,有什么问题欢迎留言讨论。