Redis的5种数据结构[命令]

Redis命令参考:http://redisdoc.com/index.html

redis默认有16个数据库,编号为0~15,默认是0,使用select可以选择进入几号数据库

通用操作key

KEYS:keys [pattern] 查找所有符合给定模式 pattern 的 key,一般不在生产环境中使用
RANDOMKEY:随机返回key
TYPE:查看key的类型
EXISTS:判断key是否存在
DEL:删除key

RENAME
RENAMENX
RESTORE

DUMP

MIGRATE
MOVE key db:将当前数据库的 key 移动到给定的数据库 db 当中。
OBJECT

PEXPIRE
PEXPIREAT
PTTL

SORT

EXPIRE key sec:给key设置过期时间为sec秒
TTL key:查看key剩余的过期时间,返回-1代表永远不过期
PERSIST:去掉key的过期时间
EXPIREAT:毫秒

SCAN

字符串string

场景:缓存、计数器、分布式锁
存储文字、数字(整数/浮点数)、二进制数
在这里插入图片描述

SET key value [NX|XX] # 设置/添加,不管key是否存在,都设置
SETEX # key存在,才设置
SETNX # key不存在,才设置

GET # 获取key对应的value

MGET key1 key2 key3… # 批量获取key,原子操作
MSET key1 value1 key2 value2 key3 value3
在这里插入图片描述

INCR # 加1,如果key不存在,自增后get(key)=1
INCRBY key k
DECR # 减1,如果key不存在,自减后get(key)=-1
DECRBY key k
INCRBYFLOAT # 浮点数
实战:记录网站每个用户个人主页的访问量。incr userid:pageview
实战:缓存视频的基本信息(数据源在MySQL中)
在这里插入图片描述

MSETNX

GETSET # set key newvalue并返回旧的value
APPEND key value # 将value追加到旧的value
STRLEN key # 计算字符串的长度(注意中文)

PSETEX

SETRANGE key index value # 设置指定下标所有对应的值
GETRANGE key start end # 获取字符串指定下标所有的值

在这里插入图片描述

127.0.0.1:6379> append num 100 # 如果num不存在,结果:num = 100
(integer) 3
127.0.0.1:6379> get num
"100"

哈希表

key一张哈希表、filed属性、value属性对应的值
filed不能相同,value可以相同
在这里插入图片描述

HSET key field value # 设置hash key对应的value
HSETNX
HGET key field # 获取hash key对应的filed的value
HDEL key field # 删除hash key对应的field的value

HMGET key filed1 filed2 … filedN # 批量获取
HMSET key filed1 value1 filed2 value2 … filedN valueN

HKEYS key # 返回hash key对应所有field
HGETALL key # 获取key对应的所有field的value(小心使用,牢记单线程)
HVALS key # 返回hash key对应所有field的value

HEXISTS key field # 判断hash key是否有filed
HLEN key # 获取hash key filed的数量

HINCRBY
HINCRBYFLOAT
HKEYS

HVALS
HSCAN
HSTRLEN

实战:记录网站每隔用户个人主页的访问量。HINCRBY user:1:info pageview count
实战:缓存视频的基本信息(数据源在mysql中)
在这里插入图片描述

在这里插入图片描述

# 操作hash
127.0.0.1:6379> hset hash name james # hset:给哈希表hash中,添加域name="james"
(integer) 0
127.0.0.1:6379> hset hash age 18
(integer) 0
127.0.0.1:6379> hget hash name # hget:获得
"james"
127.0.0.1:6379> hget hash age
"18"
127.0.0.1:6379> hincrby hash age 5
(integer) 23
127.0.0.1:6379> hexists hash name # 判断哈希表中是否有域name
(integer) 1
127.0.0.1:6379> hexists hash passwd
(integer) 0

127.0.0.1:6379> hlen hash # 返回哈希表key中域的数量
(integer) 3
127.0.0.1:6379> hkeys hash # 返回哈希表key中的所有域
1) "name"
2) "age"
3) "score"
127.0.0.1:6379> hvals hash # 返回哈希表key中所有域的值
1) "james"
2) "23"
3) "100"

# 操作hash2
127.0.0.1:6379> hmset hash2 name kobe age 40 # 一次性添加多组filed=value
OK
127.0.0.1:6379> hmget hash2 name age # 一次获取多个file的值
1) "kobe"
2) "40"
127.0.0.1:6379> hdel hash2 name age # 依次删除多个file
(integer) 2
127.0.0.1:6379> hgetall hash2 # 获得
(empty list or set)

list

两端添加;查看列表;两端弹出;获取列表元素个数;扩展命令

LINSERT key BEFORE|AFTER pivot value:将值 value 插入到列表 key 当中,位于值 pivot 之前或之后
LLEN key
LPOP、RPOP:弹出表头
LPUSH、RPUSH:插入到表头、表尾
LPUSHX、RPUSHX

LINDEX:返回列表 key 中,下标为 index 的元素
LRANGE key start end(包含end):获取列表key中指定索引范围所有item

LSET key index value:将列表 key 下标为 index 的元素的值设置为 value

LREM key count value:根据count值,从列表中删除值等于value的项
在这里插入图片描述

LTRIM key start end:保留[start,end]内的元素,其他的全部删除

注解:B代表阻塞block的含义
BLPOP key timeout:LPOP阻塞版本,timeout是阻塞超时时间,timeout=0为永远不阻塞
BRPOP
BRPOPLPUSH、RPOPLPUSH

栈:LPUSH+LPOP
队列:LPUSH+RPOP
消息队列:LPUSH+BRPOP

Set集合

特点:不允许出现重复的元素
在这里插入图片描述
SADD/SREM key element:添加/删除元素
SMEMBERS:获得集合中的元素

SDIFF:差集 、 SDIFFSTORE:差集存放在集合上
SINTER:交集 、 SINTERSTORE
SUNION:并集 、 SUNIONSTORE

SCARD:查看集合中元素个数
SISMEMBER:判断元素是否存在在集合中
SMEMBERS
SRANDMEMBER:随机从集合中选出count个元素

SMOVE
SPOP # 随机从集合中弹出一个元素
SSCAN

sorted-set

存储的值:带分数的score-value有序集合,其中score为浮点(可以重复),value为元素(不能重复)

使用场景:在线游戏积分排行榜、构建索引数据
ZADD key score member
ZREM
ZSCORE key element:返回元素的分数
ZCARD key:返回元素的总个数
ZCOUNT key min max:返回有序集 key 中, score 值在 min 和 max 之间的成员的数量
ZINCRBY key increment member:为有序集 key 的成员 member 的 score 值加上增量 increment
ZRANGE:返回有序集 key 中,指定区间内的成员
ZRANGEBYSCORE:返回有序集 key 中,所有 score 值介于 min 和 max 之间的成员
ZRANK:返回有序集 key 中成员 member 的排名

ZREMRANGEBYRANK:移除有序集 key 中,指定排名(rank)区间内的所有成员
ZREMRANGEBYSCORE:移除有序集 key 中,所有 score 值介于 min 和 max 之间
ZREVRANGE:返回有序集 key 中,指定区间内的成员
ZREVRANGEBYSCORE:返回有序集 key 中, score 值介于 max 和 min 之间的所有的成员
ZREVRANK:返回有序集 key 中成员 member 的排名

ZUNIONSTORE
ZINTERSTORE
ZSCAN
ZRANGEBYLEX
ZLEXCOUNT
ZREMRANGEBYLEX

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值