redis中的5种数据结构

这里的数据结构指的是key-value中value的数据结构,分别为string、hash、list、set、sorted set。每种数据结构都有相关的命令,比如set命令表示使用string来存储value,get命令的参数只能为对应value值存储为string的key,操作其他数据结构需要相应的命令,这些命令可以从redis官方站点查询。

string

使用string时,redis**大多数情况下**并不会理解或者解析其含义,无论使用json、xml还是纯文本在redis看来都是一样的,只是一个字符串,只能进行strlen、append等对字符串通用的操作,无法针对其内容进一步操作。其基本操作命令有set、get、strlen、getrange、append:

SET key value
GET key
STRLEN key
GETRANGE  key start end
APPEND key value

在大多数情况之外,就是string中存储的为纯数字的情况,redis可以将字符串当做数字进行进一步操作,这些操作包括decr、decrby、incr、incrby和incrbyfloat。

hash

使用hash时,在我看来,就是value本身就是一组key-value对,不过redis将这里的key称为field(但是hkeys命令为什么不叫hfields命令呢哈哈),也就是value是一组field-value对。其基本操作命令有hset、hget、hmset、hmget、hgetall、hkeys和hdel:

HSET key field value
HGET key field
HMSET key field value [field value ...]
HMGET key field [field ...]
HGETALL key
HKEYS key
HDEL key field [field ...]

list

使用list时,value就是一个string数组,操作这组string时,可以像对待栈一样使用pop和push操作,但是这个栈两端都能进行操作;也可以像对待数组一样使用一个index参数来操作。list的操作命令略杂,主要分为两类:L开头的和R开头的,L代表LEFT或者LIST,进行一些从列表左端进行的操作,或者一些与端无关的操作;R代表RIGHT,进行一些从列表右端进行的操作。

set

set用于存储一组不重复的值,也可以进行一些集合的操作,就像数学上的集合,它是无序的。基本操作有sadd和sismember:

SADD key member [member ...]
SISMEMBER key member

集合操作有:求交sinter、求并sunion和求差sdiff:

SINTER key [key ...]
SUNION key [key ...]
SDIFF key [key ...]

sorted set

sorted set类似set,但是sorted set里每个元素都有一个score,这个score可用于排序和排名。基本操作有zadd、zcount、zrank:

ZADD key score member [score member ...]
ZCOUNT key min max
ZRANK key member
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值