Redis学习笔记(一)五大数据类型和常用命令

Redis学习笔记(一)

本系列更多文章,可以查看专栏 Redis



一、简介

Redis主要包括五种数据类型:String、Hash、List、Set和Sorted Set即Zset。


二、数据类型

以下数据类型是针对value的

1.String类型

  • String字符串的值可以是:字符串、数字、二进制,但其值最大不能超过512M。
  • 内容数据存储结构:key-value

(1)常见命令

命令格式功能示例说明
set key value将key-value加入缓存redisset name yf可多次为同一个key赋予相同的value;若key已存在,会覆盖原本的value
get key从redis缓存中读取key的value值get name
incr key将key对应的value值+1incr age仅对value是数值的key生效
decr key将key对应的value值-1decr age仅对value是数值的key生效
setex key seconds value将key-value加入缓存redis,并设置seconds秒后value失效setex mcode 60 123446可用于短信验证码等
ttl key查看key的存活时间ttl mcode若为永久存活的key,返回-1;若设置了过期时间的key被删除或者已过期,返回-2,否则返回相应的秒数
del key从redis缓存中删除keyudel mcode删除
setnx key value将key-value加入缓存redissetex name ye若key已存在,则不覆盖其value;若key不存在,则向redis缓存中添加key-value

(2)非常见命令

在这里插入图片描述

2.Hash类型

  • Hash类型是String类型的field和value的映射表,或者说是String集合;
  • 适合存储对象,对象存储在Hash中比存储在String类型中占用更少的内存空间;
  • 内容数据存储结构:key-value,value为field-value形式。

(1)常见命令

命令格式功能示例说明
hset key field value将field value存入redis中的hash中,键值为keyhset user name yf
hget key field从key中对应的hash列表,读取相应的field字段不可仅使用hget key,必须指定field
hmset key field1 value1 [field2 value2…]将多个field value存入redis中的hash中hset user name yf age 23
hget key field1 [field2…]从key中对应的hash列表,读取多个field字段不可仅使用hget key,必须指定一个及以上field
hexists key field判断key对应的hash列表中是否存在对应的field字段hexists user name
hdel key field删除key对应的hash列表中的field字段hdel key name
hincrby key field increment给key对应的hash列表中的field字段+incrementhincrby user mcode 60
hlen key查看key对应的hash列表中field字段的数量hlen user
hkeys key获取key对应的hash列表中所有field字段名hkeys user
hvals key获取key对应的hash列表中所有fielld字段的value值hvalues user仅有value值,无对应的field字段名
hgetall key获取key对应的hash列表中所有fielld字段及其对应的value值hgetall user既有字段名,还有相应的value值

3.List类型

  • List类型是一种双端链表结构,既可以作为栈,也可以作为队列。
  • 可以存放重复的元素,常对元素使用pop、push等操作
  • 应用场景:用户收藏文章列表等等

(1)常见命令

命令格式功能示例说明
rpush key value[…]从末尾处,向key集合中添加value值rpush hobby swim eating一次性添加多个value时,后添加的出现在右边
lpush key value[…]从开头处,向key集合中添加value值lpush hobby sleep running一次性添加多个value时,后添加的出现在左边
lrange key start stop从起始位置到终止位置展示value值lrange hobby 0 2stop值可以选择-1,-2等等,表示倒数第一个value、倒数第二个value。上两行示例后,结果为 running sleep swim eating
rpop key弹出key集合中末尾(最右边)的元素rpop hobby
lpop key弹出key集合中开头(最左边)的元素lpop hobby
llen key获取list类型集合长度llen hobby

(2)非常见命令

在这里插入图片描述

4.Set类型

  • Set集合是String类型的无序集合,通过HashTable实现;
  • 对集合可以取交集、并集、差集;
  • 内容数据存储结构:key-value,value为set类型

(1)常见命令

命令格式功能示例说明
sadd key members […]向key集合中添加memberssadd myset a b c
smembers key遍历key集合中所有members元素smembers myset
srem key members […]删除key集合中memberssrem myset a
spop key count从key集合中随机弹出count个元素spop myset 1可应用于抽奖

(2)非常见命令

在这里插入图片描述

5.Sorted Set类型

  • 又称Zset类型
  • Sorted Set集合是通过哈希表实现的,添加、删除、查找的复杂度均为O(1);
  • Sorted Set集合是有排序效果的Set集合,每个元素关联一个double类型的分数,根据此分数实时地进行排序;
  • 内容数据存储结构:key-value,value为set类型

(1)常见命令

命令格式功能示例说明
zadd key score members[…]往key集合中添加member元素,分数为scorezadd players 1000 a 2000b可以同时添加多个member元素
zincrby key increment member将key集合中的member元素分数+incrementzincrby players 3000 a增加的分数在前,member元素在后
zrange key start stop[withscores]将key集合中的member元素按分数升序排列[同时显示分数]hrange players 0 -1 withscores-1即为倒数第一个member元素的位置
zrevrange key start stop[withscores]将key集合中的member元素按分数降序排列[同时显示分数]hrevrange players 0 -1 withscores-1即为倒数第一个member元素的位置
zrank key member返回member元素在key集合中的正序排名zrank players b
zrevrank key member返回member元素在key集合中的倒序排名zrevrank players b
zcard key获取key集合中member元素的个数zcard players

(2)非常见命令

在这里插入图片描述


结尾

如有错误,欢迎评论区指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想要大口炫榴莲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值