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还有事务、发布订阅等功能。