Redis数据类型

Redis数据类型

Scroll Down

一、概述

Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。

键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。

Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。

二、数据类型

数据类型可以储存的值可进行的操作
STRING字符串、整数、浮点数对整个字符串或者字符串的其中一部分执行操作
对整数和浮点数执行自增或者自减操作
LIST列表从两端压入或者弹出元素
对单个或者多个元素进行修剪,只保留一个范围内的元素
HASH包含键值对的无序列表添加、获取、移除单个键值对
获取所有键值对
检查某个键是否存在
SET无序集合添加、获取、移除单个元素
检查一个元素是否存在于集合中
计算交集、并集、差集
从集合里面随机获取元素
ZSET有序集合添加、获取、删除元素
根据分值范围或者成员来获取元素
计算一个键的排名


STRING

image

命令行为
GET获取存储在给定键中的值
SET设置存储在给定键中的值
DEL删除存储在给定键中的值

示例:

> set hello world
OK
> get hello
"world"
> del hello
(integer) 1
> get hello
(nil)

LIST

image

命令行为
RPUSH将定值推入列表的右端
LRANGE获取列表在给定范围上的所有值
LINDEX获取列表在给定位置上的单个元素
LPOP从列表的左端弹出一个值,并返回被弹出的值

示例:

> rpush list-key item
(integer) 1
> rpush list-key item2
(integer) 2
> rpush list-key item
(integer) 3

> lrange list-key 0 -1
1) "item"
2) "item2"
3) "item"

> lindex list-key 1
"item2"

> lpop list-key
"item"

> lrange list-key 0 -1
1) "item2"
2) "item"


HASH

image

命令行为
HSET在散列里面关联起给定的键值对
HGET获取指定散列键的值
HGETALL获取散列包含的所有键值对
HDEL如果给定键存在于散列里面,那么移除该键

示例:

> hset hash-key sub-key1 value1
(integer) 1
> hset hash-key sub-key2 value2
(integer) 1
> hset hash-key sub-key1 value1
(integer) 0

> hgetall hash-key
1) "sub-key1"
2) "value1"
3) "sub-key2"
4) "value2"

> hdel hash-key sub-key2
(integer) 1
> hdel hash-key sub-key2
(integer) 0

> hget hash-key sub-key1
"value1"

> hgetall hash-key
1) "sub-key1"
2) "value1"

SET

image

命令行为
SADD将给定元素添加到集合
SMEMBERS返回集合包含的所有元素
SISMEMBER检查给定元素是否存在集合中
SREM如果给定元素存在于集合里面,那么移除该元素

示例:

> zadd zset-key 728 member1
(integer) 1
> zadd zset-key 982 member0
(integer) 1
> zadd zset-key 982 member0
(integer) 0

> zrange zset-key 0 -1 withscores
1) "member1"
2) "728"
3) "member0"
4) "982"

> zrangebyscore zset-key 0 800 withscores
1) "member1"
2) "728"

> zrem zset-key member1
(integer) 1
> zrem zset-key member1
(integer) 0

> zrange zset-key 0 -1 withscores
1) "member0"
2) "982"

ZSET

image.png

命令行为
ZADD将一个带有给定分值的成员添加到有序集合
ZRANGE根据元素在有序排序中所处的位置,从有序集合里面获取多个元素
ZRANGEBYSCORE获取有序集合在给定分值范围的所有元素
ZREM如果给定成员存在于有序集合里面,那么移除该成员
> zadd zset-key 728 member1
(integer) 1
> zadd zset-key 982 member0
(integer) 1
> zadd zset-key 982 member0
(integer) 0

> zrange zset-key 0 -1 withscores
1) "member1"
2) "728"
3) "member0"
4) "982"

> zrangebyscore zset-key 0 800 withscores
1) "member1"
2) "728"

> zrem zset-key member1
(integer) 1
> zrem zset-key member1
(integer) 0

> zrange zset-key 0 -1 withscores
1) "member0"
2) "982"