redis数据结构

目录

String

setnx 

setxx

mset

mget

incr [key]

decr

incrby [incr-key] [num]

incrbyfloat [incr-key] [f-num]

append

strlen

getset

setrange [key] [index] [value]

getrange [key] [index1] [index2]

Hash

hset

hget

hdel

hlen

hmget 

hexists

hkeys

hvals

hgetall 

hincrby 

Hash与String对比 

List

lpush

rpush

lrange

lpop

rpop

lrem

ltrim

lset

lindex

llen

blpop 

Set

sadd

smembers

srem

scard

sismember

srandmember [key] [count]

spop

sinter [set1] [set2]

sunion [set1] [set2]

sdiff [set1] [set2]

sinterstore 

Zset

zadd [key] [score] [member]

zcard

zscore

zrank

zrevrank 

zrem

zincrby

zrange

zrevrange 

zrangebyscore 


String

字符串类型

setnx 

不存在才能设置,失败返回0

同时也可以这么写:set hello redis nx

setxx

set hello redis xx

只有存在才设置

mset

批量设置键和值

示例:mset a 1 b 2 c 3

mget

批量获取

示例:mget a b c

会返回1 2 3

incr [key]

计数器

示例:incr incr-key

每执行一次incr-key的值加一

decr

减数器

示例:decr incr-key

每执行一次incr-key的值减一

incrby [incr-key] [num]

以num为步长对incr-key进行加操作

incrbyfloat [incr-key] [f-num]

浮点数加

append

对字符串进行追加

ps:一个中文字符占据三个长度

strlen

返回字符串的长度

getset

先返回旧值,再进行值的覆盖

setrange [key] [index] [value]

在key的index位置,插入value值

getrange [key] [index1] [index2]

返回index1至index2的value值

Hash

类似于java中的hashmap,value对应了一个field和value

hset

设置一个hash结构

格式:hset [key] [field...] [value...]

示例:hset user:1 name lihua age 18

hget

返回指定field的value

格式:hget [key] [field]

示例:hget user:1 name

hdel

删除指定field

格式:hdel [key] [field]

示例:hdel user:1 age

hlen

返回hash中field的个数

格式:hlen [key]

示例:hlen user:1

hmget 

返回hash中多个field的值

格式:hmget [key] [field...]

示例:hmget user:1 name age

hexists

判断hash中是否有指定field

格式:hexists [key] [field]

存在返回1反之为2

hkeys

返回hash中所有field

示例:hkeys user:1

hvals

返回hash中所有value

示例:hvals user:1

hgetall 

返回hash中所有field和value

hincrby 

格式:hincrby [key] [field] [num]

对field对应value自增

Hash与String对比 

List

链表

lpush

在链表左边插入

示例:lpush demolist d c b a

rpush

在链表右边插入

示例:rlpush demolist a b c d

lrange

遍历输出节点

格式:lrange [key] [start] [stop]

示例:lrange demolist 0 2

ps:lrange demolist 0 -1遍历全部

lpop

链表弹出最左侧的元素

格式:lpop [key] [num]

示例:lpop demolist

返回元素a,此时再执行lrange demolist 0 -1会发现少了a

rpop

链表弹出最右侧的元素

lrem

删除链表中的指定数量的指定元素

格式:lrem [key] [num] [elem]

示例:lrem demolist 2 x

ltrim

裁剪链表

格式:ltrim [key] [start] [stop]

示例:ltrim demolist 0 1

lset

修改链表元素

格式:lset [key] [index] [elem]

示例:lset demolist 1 xxx

lindex

按索引取值

格式:lindex [key] [index]

示例:lindex demolist 1

llen

返回链表长度

格式:llen [key]

示例:llen demolist

blpop 

格式:blpop [key] [timeout]

弹出元素,如果没有元素则阻塞,timeout设置为0则一直阻塞直至弹出元素,可以实现一个简单的消息队列

Set

无序集合,不允许重复

sadd

添加元素

格式:sadd [key] [elem...]

示例:sadd demoset a b c a

会返回3,因为不会插入重复元素

smembers

打印集合元素

格式:smembers [key]

示例:smembers demoset

ps:因为是无序集合,并不会顺序展示

srem

删除元素

格式:srem [key] [elem...]

示例:srem demoset c d

scard

计算集合长度

格式:scard [key]

示例:scard demoset

sismember

判断集合是否有指定元素

格式:sismember [key] [elem]

存在返回1反之0

srandmember [key] [count]

随机的返回集合元素,同时可以指定数量

spop

随机弹出集合中的一个元素

sinter [set1] [set2]

返回两个集合的交集

sunion [set1] [set2]

返回两个集合的并集

sdiff [set1] [set2]

返回集合的set1相对于set2的差集,也就是set1有的而set2没有的

sinterstore 

操作后将结果保存到新的集合

格式:sinterstore [newset] [set1] [set2]

示例:sinterstore newset set1 set2

同理,union,diff也是一样的

Zset

有序集合,在set基础上增加了score字段,根据分数排序

zadd [key] [score] [member]

增加对应元素及分数

zcard

返回元素数量

格式:zcard [key]

zscore

返回对应member的score

格式:zscore [key] [member]

zrank

返回member对应的排名

格式:zrank

zrevrank 

返回倒排

格式:zrevrank [key] [member]

zrem

删除元素

格式:zrem [key] [member...]

zincrby

增加元素分数

格式:zincrby [key] [num] [member]

zrange

排序

示例:zrange [key] [start] [stop] [withscores]

zrevrange 

倒排序

zrangebyscore 

根据分数排序

zrangebyscore [key] [min] [max]

zrangebyscore [key] [-inf] [+inf] [withscores]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值