Redis的数据类型、设置key失效

导读:本篇文章讲解 Redis的数据类型、设置key失效,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

string 字符串

  • string是Redis最基本的类型,一个key映射一个value
  • 是二进制安全的,可以存储图片、序列化对象等
  • 最大存储512MB

单值缓存

set key value     存入键值对
append key value  在key对应的值后追加value,返回新长度
strlen key        获取key的长度
get key           取出key对应的value
del key           删除key

对象缓存(用于不修改对象)

set user:1 value(json 格式数据)

计数器

incr  key 数值 + 1
decr  key 数值 - 1
set  gwc_sp1 1     设置购物车该商品个数
incr gwc_sp1 2     商品个数+2
decr gwc_sp1 1     商品个数-1
get  gwc_sp1       获取商品个数

hash 散列

  • string 类型的 field 和 value 的映射表
  • 适合存储对象(修改对象)
  • 底层的数据结构有压缩列表(ziplist)和哈希表(hashtable),当filed-value长度较短时使用压缩列表,较长则使用哈希表

存取一个哈希key的键值

hset key field value     存储一个哈希表 key 的键值
hget key field           获取哈希表 key 对应的 field 键值

创建一个user:zs1的键,属性name,age,sex,并获取属性
在这里插入图片描述
存取多个哈希表的键值

hmset key field value [field value …] 存储多个键值对
hmget key field [field …]             获取哈希表 key 中多个 field 键值

在这里插入图片描述

删除哈希表 key 中的 field 键值

hdel key field [field …]

在这里插入图片描述
返回哈希表 key 中的 field 的数量

hlen key

在这里插入图片描述
返回key 的 所有属性 & 返回key 的 所有值

hkeys key   返回key 的 所有属性
hvals key   返回key 的 所有值

在这里插入图片描述

返回哈希表 key 中所有的键值

hgetall key

在这里插入图片描述
增加/减少的值

hincrby key field
  • 正数 +
  • 负数 –
    在这里插入图片描述

list 列表

  • 是简单的字符串列表
  • 按插入顺序排序
  • 可以添加到列表头部或尾部

命令

lpush  key value[value...]  将一个或多个值插入到 key 列表的表头(最左边) 
rpush  key value[value...]  将一个或多个值插入到 key 列表的表尾(最右边) 
lpop   key                  移除并返回 key 列表的头元素 
rpop   key                  移除并返回 key 列表的尾元素 
lrange key start stop       返回列表key中指定区间内的元素,区间以偏移量start和stop
llen   key                  返回 key 对应列表的长度

lpush lrange
在这里插入图片描述
lpop,rpop
在这里插入图片描述
获取长度llen
Redis的数据类型、设置key失效
常见用法

  • Stack= Lpush + Lpop (FILO)
  • Queue= Lpush + Rpop
    使用场景:可以用来存储接收到的消息数据

set 集合(无序)

不允许重复元素

sadd key member[member...] 往集合 key 中存入元素,元素存在则忽略, 若 key 不存在则新建 
srem key member[member...] 从集合 key 中删除元素 
smembers key               获取集合 key 中所有元素 
scard key                  获取集合 key 的元素个数

在这里插入图片描述

Zset 有序集合

  • Zset中的每个元素都会关联一个double类型的分数,Redis是通过分数来为集合中的成员进行排序。
  • Zset的成员是唯一的,但是分数可以重复
向有序集合key中加入带分值元素
zadd key score member[[score member]..]

从有序集合key中删除元素
zrem key member[member...]

返回有序集合 key 中元素 member 的分值
zscore key member

返回有序集合key中元素member的分值加上increment
zincrby key increment member

返回有序集合key中元素个数
zcard key

正序获取有序集合key从start下标到stop下标的元素
zrange key start stop[withscores]

在这里插入图片描述

设置key失效

像缓存、验证码等临时数据,不必一直存在,若想要在一定时间内销毁它,可以使用Redis提供的对key设置过期时间的命令来做。
Redis中默认有效时间是-1,也就是永久有效。

1.设置值时就规定有效时间

  • ex 以秒为单位
  • px 以毫秒为单位
set key value ex 20 设置20s有效期
ttl key             查看key剩余时间(s)
pttl key            查看key剩余时间(ms)

在这里插入图片描述
设置了20秒的有效时间,第二次再访问已经没有数据了

2.在已经有值时,给值规定有效时间

expire key        时间(s) 
pexpire key       时间(ms)

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/15587.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!