专栏首页用户7621540的专栏Redis工作中常用命令,看这一篇就够了

Redis工作中常用命令,看这一篇就够了

本文源自 公-众-号 IT老哥 的分享

IT老哥,一个在大厂做高级Java开发的程序员,每天分享技术干货文章

前言

jvm我们讲了两篇文章,为了不让大家学习疲劳,我们几个技术穿插着来讲,我们今天讲讲Redis的各种命令,这篇会把大家日常需要用到的命令全都列出来,满足你们的日常工作需求

redis五大数据类型

redis键(key)

常用命令

命令

注释

keys *

获取所有的key

select 0(库角标)

选择第几个库

move key 0(库角标)

将当前的数据库key移动到某个数据库,目标库有,则不能移动

flush 0(库角标)

清除指定库

randomkey

获取随机key

type key

key的类型

set key value

设置key和value

get key

获取key的value

mset key1 value1 key2 value2

批量设置key、value

mget key1 key2 key3

批量获取value

del key

删除key

exists key

判断是否存在key

expire key second(秒)

给key设置过期时间

pexpire key millisecond (毫秒)

给key设置过期时间

persist key

删除过期时间,持久保存key

String类型

简介

String是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。

String类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

String类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

存储结构类似:key:value

常用命令

命令

注释

set key value

设置值

get key

获取值

getrange key start end

获取指定范围的value

getset key value

设置新value,并返回旧value

getbit key offset

获取字符串中某个位置的字符

mget key1 key2

获取多个value

setex key second(秒) value

设置key、value,同时设置过期时间

setnx key value

key不存在时设置key

setrange key offset value

用新value替换老value部分字符,从offset开始替换

strlen key

获取value长度

mset key1 value1 key2 value2

批量设置key、value

msetnx key1 value1 key2 value2

批量设置,当且仅当所有要设置的key都不存在时

psetex key milliseconds(毫秒) value

设置过期时间,单位毫秒

incr key

如果value是数字,使用这个语法使数字自增1

incrby key increment

给value增加指定的值increment

decr key

给value减去1

decrby key decrement

给value减去指定的值decrement

append key value

将value追加到key原来的value尾部

List类型

简介

它是一个字符串链表,left、right都可以插入添加;

如果键不存在,创建新的链表;如果键已存在,新增内容;如果值全移除,对应的键也就消失了。

链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。

key是列表的名称,value是列表。

存储结构类似:key:[value1, value2, value3, value4]

常用命令

命令

注释

blpop key timeout

在timeout时间内,获取并移除列表的第一个元素

brpop key1 timeout

在timeout时间内,获取并移除列表的最后一个元素

brpoplpush source destination timeout

在timeout时间内,从source列表中取出一个值,放到destination列表中

lindex key index

获取列表index位置的值

linsert key BEFORE

AFTER value1 value2

llen key

返回列表的长度

lpop key

获取并移除列表的第一个元素

lpush key value value2

将一个或多个value插入到列表的头部

lpushx key value

当key已经存在的时候,向列表的头部插入value

lrange key start end

获取列表部分数据,从start到end范围

lrem key count value

count>0,从列表的头部开始算起,移除count个value相同的数据;count<0,从列表的尾部开始算起,移除count绝对值个value相同的数据;count=0,全部移除value相同的数据

lset key index value

在列表index位置设置value

ltrim key start end

保留start到end内的数据,其余的全部删除

rpop key

获取并移除列表最后一个元素

rpoplpush source destination

移除source列表最后一个元素,并把该元素添加到destination列表的头部

RPUSH key value1 value2

将一个或多个value添加到列表的尾部

rpushx key value

为已经存在的列表添加值

Hash类型

简介

hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。

存储结构类似:key:{field1:value1, field2:value2, field3:value3}

如:HMSET keyName name "redis tutorial" description "redis basic commands for caching"

常用命令

命令

注释

hdel key field1 field2

删除key中一个或多个field及value

hexists key field

查看哈希表key中,指定的field字段是否存在

hget key field

在key中查找filed字段的value值

hgetall key

获取在哈希表中指定 key 的所有字段和值

hincrby key field increment

为哈希表 key 中的指定字段的整数值加上增量increment

hincrbyfloat key field increment

为哈希表 key 中的指定字段的浮点数值加上增量 increment 。

hkeys key

获取所有哈希表中的字段

hlen key

获取哈希表中字段的数量

hmget key field1 field2

获取所有指定字段的值

hmset key field1 value1 field2 value2

同时将多个 field-value对设置到哈希表 key 中

hset key field value

将哈希表 key 中的字段 field 的值设为 value 。

hsetnx key field value

只有在字段 field 不存在时,设置哈希表字段的值。

hvals key

获取哈希表中所有值。

hscan key cursor [MATCH pattern] [COUNT count]

迭代哈希表中的键值对。

set类型

简介

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

存储结构类似:key:("value1", "value2", "value3")

常用命令

命令

注释

sadd key value1 value2

向集合添加一个或多个成员

scard key

获取集合的成员数大小

sdiff key1 key2 key3

返回第一个集合与其他集合之间的差异。

sdiffstore destination key1 key2

返回给定所有集合的差集并存储在 destination 新key中

sinter key1 key2

返回给定所有集合的交集

sinterstore destination key1 key2

返回给定所有集合的交集并存储在 destination 新key中

sismember key value

判断key的集合中是否存在value

smembers key

返回key集合中所有的value

smove source destination value

将 value 元素从 source的key 集合移动到 destination的key 集合中

spop key

随机获取并移除key中的一个value

srandmember key count

随机返回集合中count个value

srem key value1 value2

移除集合中一个或多个value

sunion key1 key2

返回所有给定集合的并集

sunionstore destination key1 key2

所有给定集合的并集存储在 destination key集合中

SSCAN key cursor [MATCH pattern] [COUNT count]

迭代集合中的元素

Zset(sorted set)类型

简介

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

存储结构类似:key:{score1:value1, score2:value2, score3:value3, }

常用命令

命令

注释

zadd key score1 value1 score2 value2

向有序集合添加一个或多个成员,或者更新已存在成员的分数

zcard key

获取有序集合的成员数

zcount key min max

计算在有序集合中指定区间分数的成员数

zincrby key increment value

有序集合中对指定成员的分数加上增量 increment

zinterstore destination numkeys key [key ...]

计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中

zlexcount key min max

在有序集合中计算指定字典区间内成员数量

zrange key start stop [WITHSCORES]

通过索引区间返回有序集合指定区间内的成员

zrangebylex key min max [LIMIT offset count]

通过字典区间返回有序集合的成员

zrangebyscore key min max [WITHSCORES] [LIMIT]

通过分数返回有序集合指定区间内的成员

zrank key value

返回有序集合中指定成员的索引

zrem key value [value ...]

移除有序集合中的一个或多个成员

zremrangebylex key min max

移除有序集合中给定的字典区间的所有成员

zremrangebyrank key start end

移除有序集合中给定的排名区间的所有成员

zremrangebyscore key min max

移除有序集合中给定的分数区间的所有成员

zrevrange key start stop [WITHSCORES]

返回有序集中指定区间内的成员,通过索引,分数从高到低

zrevrangebyscore key max min [WITHSCORES]

返回有序集中指定分数区间内的成员,分数从高到低排序

zrevrank key value

返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序

zscore key value

返回有序集中,成员的分数值

zunionstore destination numkeys key [key ...]

计算给定的一个或多个有序集的并集,并存储在新的 key 中

zscan key cursor [MATCH pattern] [COUNT count]

迭代有序集合中的元素(包括元素成员和元素分值)

云服务器云硬盘数据库(包括MySQL、Redis、MongoDB、SQL Server),CDN流量包,短信流量包,cos资源包,消息队列ckafka,点播资源包,实时音视频套餐,网站管家(WAF),大禹BGP高防(包含高防包及高防IP),云解析SSL证书,手游安全MTP移动应用安全云直播等等。

本文分享自微信公众号 - IT老哥(dys_family),作者:IT老哥

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 高并发下缓存雪崩、穿透、击穿了,你该如何挽救

    在今天的互联网里,高并发、大数据量、大流量已经成为了代言词,那么我们的系统也承受着巨大的压力,首当其冲的解决方案就是redis。

    公众号 IT老哥
  • NIO实现群聊功能,手动实现聊天室

    哈喽大家好,我是IT老哥,今天带大家用NIO实现一个聊天室的群聊功能,废话不多说,直接上代码,肝它。

    公众号 IT老哥
  • 通俗易懂数据库MVCC讲解,后悔没早点学

    全称Multi-Version Concurrency Control,即多版本并发控制,主要是为了提高数据库的并发性能。以下文章都是围绕InnoDB引擎来讲,...

    公众号 IT老哥
  • Redis从入门到放弃(二)

    string是reids的最基本的类型 最大能存储 512M的数据 string类型是二进制的 可以存储任何数据 比如数字 图片 序列化对象等

    会呼吸的Coder
  • Linux下安装Redis3

    下载 下载地址 http://redis.io/download Linux 下执行 wget http://download.redis.io/relea...

    小柒2012
  • Redis学习笔记 -- 2

    Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下:

    用户1637228
  • Redis常用命令整理

    端碗吹水
  • Redis系列(十一)redis命令全集

    总的来说,Redis 是一个基于内存的高性能的键值型数据库,也就是常说的 NoSQL, 可以用来作为数据库或者缓存。并且支持多种数据结构,包括字符串,散列,列表...

    呼延十
  • Redis-各数据类型常用命令(含使用示例)

    Redis的全部命令详情可以在官网查询。 点此Redis系列文章专栏 命令不自己敲一遍,都是白搭,就算忘了也可以翻这篇博客。

    唔仄lo咚锵
  • Redis常用命令详解

    如果客户端处于频道订阅模式下,它将是一个multi-bulk返回,第一次时返回”pong”,之后返回空(empty bulk),除非命令后面更随了参数

    JavaEdge

扫码关注云+社区

领取腾讯云代金券