Redis中常用的数据类型及常用指令

String(字符串)

string是redis最基本的类型,一个key对应一个 value。

string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象,但是储存有最大的限制,最大单元是512MB.

常用指令:

set <key> <value>:添加一组kv数据(如果key已经存在则是覆盖)

get <key> :获取key对应的value

append <key> <value>:在value原有的基础上进行追加操作

setnx <key> <value>:如果key不存在则添加,如果key存在操作失败

 strlen <key>:获取key对应的value的长度
incr <key>:把key对应的value的数值+1
decr <key>:把key对应的value的数值-1
PS:以上两个操作只对数字生效
incrby/decrby <key> <step>:相比较于上述两个指令来说区别是可以设置步长
mset <key> <value> [<key> <value>...]:批量添加
mget <key> [<key>...]:批量获取
msetnx <key> <value>[<key> <value>...]:批量setnx操作
setex <key> <时间> <value>:添加kv数据的同时并且设置过期时间(单位是秒)

List(列表)

Redis列表是最简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的左边或者右边,底层实际是个双端链表。

常用指令:

lpush/rpush <key> <element>[<element>...]:从左边/右边插入一条或者多条数据
lrange <key> <start> <stop>:从坐标开始获取(0表示第一个坐标。-1表示最后一个坐标)
lpop/rpop <key>:从左边/右边弹出一个数据(即使获取也是删除)。所有的element都被弹出则整个key消失
lindex <key> <index>:获取key对应的列表中对应的索引位置的数据
linsert <key> befotr|after <value> <newvalue>:在指定的key的指定value的前或者后插入新数据
lrem <key> <count> <value>:从左边删除指定数据的value
lset <key> <index> <value>:替换指定key对应的value的指定索引位置的值

Hash(哈希)

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

常用指令:

hset <key> <field> <value> [<field> <value>...]:添加数据
hget <key> <field>:获取key对应的hash中的field对应的value
hkeys <key>:获取key对应的hash中的所有的field
hvals <key>:获取key对应的hash中的所有的value
hexists <key> <field>:判断指定的key对应的hash中是否存在指定的field

Set(集合)

Redis的Set是String类型的无序集合 。集合成员是唯一的,这就意味着集合中不能出现重复数据,集合对象的编码可以是intset或者hashtable。

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

常用指令:

sadd <key> <member>[<member>...]:将一个或者多个member元素放入到集合中,已经存在的则会忽略
smembers <key>:获取集合中所有的值
simember <key> <member>:判断是否存在某一值,1:存在  0:不存在
scard <key>:返回集合中元素的个数
srem <key> <member>[<member>...]:删除集合中具体一个元素或者多个元素
spop <key> [count]:随机从集合中弹出一个或者多个元素(即使获取也是删除,集合中所有元素弹出后集合也会删除)
srandmenber <key> [count]:随机从集合中获取一个或者多个元素(不会删除元素)
smove <source> <destination> <member>:把指定元素从源集合移动到目标集合
sinter <key> <key>:计算两个集合的交集元素
sunion <key> <key>:计算两个集合的并集元素
sdiff <key> <key>:计算两个集合的差集元素

Zset(有序集合) 

Redis zset和set一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。 zset的成员是唯一的,但分数(score)却可以重复。 zset集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

常用指令:

zadd <key> <score> <member>[<score> <member>...]:将一个或者多个menber和score添加到有序集合中。如果添加的member已经存在,则更新member对应的score。
zrange <key> <start> <stop> [withscores]:获取坐标start到坐标stop中所有的member。携带withscores则把评分一并展示
ZRANGEBYSCORE <key> <minScore> <maxScore> [withscores] <limit idnex size>:获取指定评分范围内的数据,可以进行分页展示
zrem <key> <value>:删除指定的值
zcount <key> <minScore> <maxScore>:根据评分区间统计个数
zrank <key> <value>:返回指定的值在集合中的排名(从0开始计算)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值