Redis五大基本类型

目录

字符串(String)

常用命令

列表(List)

常用命令

集合(set)

常用命令

哈希(hash)

常用命令

有序集合(zset)

常用命令


字符串(String

  • key-value形式,是二进制安全的,可以存储任何数据;
  • 一个redis中字符串的value值最多是512M

常用命令

set key value  
设置key值,(多次相同key会被覆盖)

get key
获取key值

append key value
如果 key 已经存在,并且值为字符串,那么这个命令会把 value 追加到原来值(value)的结尾。
如果 key 不存在,那么它将首先创建一个空字符串的key,再执行追加操作,这种情况 APPEND 将类似于 SET 操作

strlen key
返回key的string类型value的长度。如果key对应的非string类型,就返回错误。

setnx key value
将key设置值为value,如果key不存在,这种情况下等同SET命令。 
当key存在时,什么也不做。SETNX是”SET if Not eXists”的简写。不会存在覆盖
DECR key
对key对应的数字做减1操作

INCR key
对存储在指定key的数值执行原子的加1操作。

DECRBY key decrement
将key对应的数字减decrement(步长)

INCRBY key increment
将key对应的数字加decrement

MSET key value [key value ...]
对应给定的keys到他们相应的values上。MSET会用新的value替换已经存在的value,

MGET key [key ...]
返回所有指定的key的value。对于每个不对应string或者不存在的key,都返回特殊值nil

MSETNX key value [key value ...]
对应给定的keys到他们相应的values上。只要有一个key已经存在,MSETNX一个操作都不会执行。

SETEX key seconds value
设置key对应字符串value,并且设置key在给定的seconds时间之后超时过期。
这个命令等效于执行下面的命令:SET mykey value和EXPIRE mykey seconds

GETSET key value
自动将key对应到value并且返回原来key对应的value。
如果key存在但是对应的value不是字符串,就返回错误。返回之前的旧值,
如果之前Key不存在将返回nil

GETRANGE key start end
返回key对应的字符串value的子串,这个子串是由start和end位移决定的(两者都在string内)。
可以用负的位移来表示从string尾部开始数的下标。所以-1就是最后一个字符,-2就是倒数第二个,以此类推

列表(List)

        redis列表是简单的字符串列表,按照插入顺序排序;底层是一个双向链表,对两端的操作性能高,通过索引下标操作中间节点性能差。

常用命令

从头插: LPUSH key value [value ...]  
元素是从最左端的到最右端的、一个接一个被插入到 list 的头部

从尾插: RPUSH key value [value ...]   
元素是从左到右一个接一个从列表尾部插入
lrange:
按索引范围获取值,格式是:lrange list的key 起始索引 终止索引 (-1表示最后一个索引)
LINDEX key index
        获取指定索引的值,下标是从0开始索引的,所以 0 是表示第一个元素, 1 表示第二个元素,并以此类推。 负数索引用于指定从列表尾部开始索引的元素。在这种方法下,-1 表示最后一个元素,-2 表示倒数第二个元素,并以此往前推。

从最左边弹出一个值:LPOP key, 弹出的元素在队列中删除
从最右边弹出一个值:RPOP key, 弹出的元素在队列中删除

值在键在,值光键亡
blpop、brpop:
        弹出值,格式是:blpop list的key值 过期时间。(key可以是多个,如果没有值,会一直等到有值,直到过期)
rpoplpush:
将元素从一个列表转移到另外一个列表,格式是:rpoplpush 源list的key值 目的list的key值
LLEN key
返回存储在 key 里的list的长度

linsert:
插入元素,格式是:linsert list的key before|after 定位查找的值 添加的值
lrem:
        删除元素,格式是:lrem list的key 数量 item项的值,(数量可正负,表示从左或从右删除;如果数量为0,表示删除全部与给定值相符的项)
lset:
设置指定索引的值,格式是:lset list的key 索引 新的值, 如果有值,覆盖掉原值

集合(set)

        是String类型的无序集合。 集合成员是唯一的,这就意味着集合中不能出现重复的数据。 Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

常用命令

SADD key member1 [member2]
向集合添加一个或多个成员
SMEMBERS key
返回集合中的所有成员
SISMEMBER key member
判断 member 元素是否是集合 key 的成员,有返回1,没有返回0
scard:获取集合中元素的个数,格式是:scard key
SREM key member1 [member2]
        移除集合中一个或多个成员,被成功移除的元素的数量,不包括被忽略的元素。元素可以不在key中,只会移除存在的值。
SPOP key
移除并返回集合中的一个随机元素
SRANDMEMBER KEY [count]
随机从集合中取出count个值,不会从集合中删除
SMOVE SOURCE DESTINATION MEMBER
将指定成员 member 元素从 source 集合移动到 destination 集合。
SINTER key1 [key2]
返回给定所有集合的交集
SUNION key1 [key2]
返回所有给定集合的并集
SDIFF key1 [key2]
返回第一个集合与其他集合之间的差异。

哈希(hash)

是一个键值对集合;是一个String类型的field和value的映射表,适合存储对象。

常用命令

HSET key field value
设置 key 指定的哈希集中指定字段的值。
如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联。
如果字段在哈希集中存在,它将被重写。
HGET key field
返回 key 指定的哈希集中该字段所关联的值

HMSET key field value [field value ...]
批量加入属性值
HEXISTS key field
返回hash里面field是否存在

HKEYS key
返回 key 指定的哈希集中所有字段的名字

HVALS key
返回 key 指定的哈希集中所有字段的值

HINCRBY key field increment
field的值增加上增量

HSETNX key field value
        只在 key 指定的哈希集中不存在指定的字段时,设置字段的值。如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联如果字段已存在,该操作无效果。

有序集合(zset)

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

常用命令

ZADD key score1 member1 [score2 member2]
向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZCARD key
获取有序集合的成员数
ZRANGE key start stop [WITHSCORES] 
通过索引区间返回有序集合指定区间内的成员;从分数小到大;WITHSCORES连带分数一块显示
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
通过分数返回有序集合指定区间内的成员
ZREVRANGEBYSCORE key max min [WITHSCORES]
返回有序集中指定分数区间内的成员,分数从高到低排序
ZINCRBY key increment member
有序集合中对指定成员的分数加上增量 increment
ZREM key member [member ...]
移除有序集合中的一个或多个成员
ZRANK key member
返回有序集合中指定成员的索引
ZCOUNT key min max
计算在有序集合中指定区间分数的成员数
ZSCORE key member
返回有序集中,成员的分数值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值