前言

Redis中有5种数据结构,分别是string(字符串)、list(链表)、set(无序集合)、hash(健值对)和zset(有序集合)

string

跟其他语言中的字符串一样,形如key value,如hello world, hello是key, world是值。

操作命令:

命令

行为

set

设置在给定键的值

get

获取指定键的值

del

删除给定键的所有值(通用命令,适合任何数据结构)

list链表

一个列表结构可以有序的存储多个值,就跟数据结构中的链表一样

hash和set区别 redis redis hash set区别_链表

值可以重复

操作命令

命令

行为

rpush/lpush

将给定的值从右边/左边推入到链表中

rpop/rpush

将给定的值从链表的右边/左边推出

lrange

获取链表中给定范围的值

lindex

获取链表中给定位置的单个值

set集合(无序不重复)

跟Java中的set集合一样无序不重复

hash和set区别 redis redis hash set区别_有序集合_02


操作命令

操作

命令

sadd

将值插入到给定的集合中

smembers

获取集合中所有的值

sismember

检查值是否在集合中

srem

移除集合中的这个值

hash 散列

Redis的散列可以存储多个健值对,跟字符串一样,散列的值可以存储字符串和数字。

hash和set区别 redis redis hash set区别_有序集合_03

hash-key是一个存储了俩个健值对的散列
hset时散列中的键对应的值会覆盖

操作命令

命令

行为

hset

给指定散列填充健值对

hget

获取指定散列的指定健值对

hdel

删除指定散列中指定的健值对

hgetall

获取指定散列的所有健值对

有序集合

和散列一样都是存储的健值对,不一样的是,有序集合的值只能是浮点数,有序集合的键称之为成员,值称之为分值.

hash和set区别 redis redis hash set区别_有序集合_04

zset-key是一个有两个健值对的集合
zadd时在同一个有序集合中相同的成员分值会被覆盖

操作命令

命令

行为

zadd

给指定集合添加已知分值的成员

zrange

根据顺序范围获取成员(0 -1)是全部

zrangebyscore

根据分值范围获取成员

zrem

移除集合中指定成员