Redist简介
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
复制代码
特点
- 支持持久化
- 数据结构类型丰富
- 支付master-slave模式的数据备份
- 原子性
数据类型
- string类型,一个key对应一个value(键值对)。一个键最大能存储512MB。
方法 | 用途 | 示例 |
GET | 获取值 | GET name |
SET | 设置值 | SET name val |
DEL | 删除值 | DEL name |
INCR | 自增1 | INCR key |
DECR | 自减1 | DECR key |
INCRBY | 自增整数amount | INCRBY key amount |
DECRBY | 自减整数amount | DECRBY key amount |
INCRBYFLOAT | 自增浮点值amount | INCRBYFLOAT key amount |
还有一些请看下面的链接,比如批量设置、设置过期时间。
- hash类型,是一个string类型的field和value的映射表,hash特别适合用于存储对象。每个hash可以存储2^32 - 1键值对(40多亿)。
方法 | 用途 | 示例 |
HGET | 获取值 | HGET hash-key sub-key1 |
HSET | 设置值 | HSET hash-key sub-key1 value1 |
HGETALL | 获取散列所有的值 | HGETALL hash-key |
HDEL | 删除值 | HDEL hash-key sub-key1 |
HMSET | 设置散列中的一个或多个键的值 | HMSET hash-key sub-key1 value1[sub-key value...] |
HMGET | 获取散列中的一个或多个键的值 | HMGET hash-key sub-key1 [sub-key...] |
HLEN | 返回散列中的键值对数量 | HLEN hash-key |
HKEYS | 获取散列中的所有键 | HKEYS hash-key |
- list类型,是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。一个列表最多可以包含 232 - 1 个元素 (每个列表超过40亿个元素)。
方法 | 用途 | 示例 |
RPUSH | 将给定值推入到列表右端 | RPUSH key name |
LPUSH | 将给定值推入到列表左端 | LPUSH key name |
RPOP | 从列表右端抛出一个值,并且返回其值 | RPOP key |
LPOP | 从列表左端抛出一个值,并且返回其值 | LPOP key |
- set类型,是String类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。集合中最大的成员数为 2^32 - 1 (每个集合可存储40多亿个成员)。
方法 | 用途 | 示例 |
SADD | 往集合添加元素 | SADD key item |
SREM | 从集合移除元素 | SREM key item |
SMEMBERS | 返回集合中的所有成员 | SMEMBERS key |
- zset类型,有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关 联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合中最大的成员数为 2^32 - 1 (每个集合可存储40多亿个成员)。
方法 | 用途 | 示例 |
ZADD | 往集合添加元素 | ZADD key score item |
ZREM | 从集合移除元素 | ZREM key item |
使用场景
类型 | 理解 | 用途示例 |
string | 简单的key-value格式 | 计数器,数据缓存 |
hash | 用于存储对象 | 存储用户信息(以用户id为hash_key,不同属性为hashmap的key-value),数据缓存 |
list | 提供栈和队列结构的双向链表 | 入队消费,抢购排队,最新评论 |
set | string的集合(可对两个集合进行运算) | 可以求交集,差集,比如微博共同好友 |
zset | string的集合(可对两个集合进行运算,并且可排序) | 可以排序,比如全班同学成绩,阅读量最高的文章,最新评论 |
补充
redis还有事务、发布订阅等功能。