Redis是一个速度非常快的非关系数据库(non-relational database)。
Redis始于实用主义——它是一个程序员因为找不到合适的工具来解决手头上的问题而发明的。
Redis是key-value形式的数据库。
数据类型
Redis里比较常用的5大数据类型:
- String(字符串)
- List(列表)
- Set(集合)
- SortedSet(有序集合)
- Hash(哈希表)
String
字符串可以存储以下三种类型的值:
- 字节串
- 整数
- 浮点数
可以对整数和浮点数执行自增或者自减操作。
1 | set key1 1 |
通过上面的例子可以看到如何操作string自增/自减
redis也可以对字节串的一部分内容进行读取或写入的操作。
1 | APPEND key-name value 追加字节串 |
List
redis列表允许用户从序列的两端推入或者弹出元素,获取列表元素,以及执行各种常见的列表操作。
常用的列表命令如下:
1 | RPUSH key-name value [value ...] // 右端push |
Set
redis集合以无序的方式存储各不相同的元素,支持添加,删除,查询等功能。
常用的集合命令如下:
1 | SADD key-name item [item ...] // 添加元素 |
SortedSet
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
常用的有序集合命令如下:
1 | ZADD key-name score member // 添加元素 |
有序集合支持正向和反向排序,也指出集合间交集和并集处理。
Hash
redis哈希:多个键值对存储到一个redis键里面,类似于关系数据库中的行,文档数据库中的文档,
常用的哈希命令如下:
1 | HMGET key-name key [key ...] // 获取指定键的值 |
常用命令
Sort排序
redis sort命令可以看作是sql语言里的order by子句。可以对列表,集合,有序集合进行排序。
处理过期时间
命令 | 示例 | 描述 |
---|---|---|
PERSIST | PERSIST key | 移除键的过期时间 |
TTL | TTL key | 查看key还有多少秒过期(time to live) |
EXPIRE | EXPIRE key seconds | 给key设置多少秒过期 |
EXPIREAT | EXPIREAT key timestamp | 设置key的过期时间为给定的时间戳 |
PTTL | PTTL key | 查看key还有多少毫秒过期(time to live) |
PEXPIRE | PEXPIRE key milliseconds | 给key设置多少毫秒过期 |
PEXPIREAT | PEXPIREAT key timestamp-milli | 设置key的过期时间为给定的时间戳(毫秒级) |
其他相关资料: