[转帖]Redis五大数据类型及用法

redis,五大,数据类型,用法 · 浏览次数 : 0

小编点评

**Redis五大数据类型** | **类型** | **说明** | |---|---| | string | 字符串类型 | | hash | 哈希表模式 | | set | 设置类型 | | list | 列表类型 | | setnx | 设置如果不存在就设置成功 |

正文

Redis五大数据类型

Redis键

keys * 查看所有的key

查看所有key

exists key,判断key是否存在

在这里插入图片描述

expire key seconds 给key设置生存时间,当key过期后,会被自动删除

ttl key 查看该key还有多少秒过期, -1表示永不过期,-2表示已过期

在这里插入图片描述

type key 查看key的类型

在这里插入图片描述

String 字符串类型

set key value 设置值

get key 获取key

del key 删除值

exists key 查看key是否存在

append key value 对不存在的key进行append 相当于 set,对已存在的key进行append,字符拼接在后面

strlen key 获取字符串的长度

在这里插入图片描述

incr key 设置key值自增

decr key 设置key值自减

incrby key increment 按照增量每次自加

decrby key increment 按照增量每次自减

在这里插入图片描述

range [范围]

setrange 设置指定区间范围内的值,格式是setrange key 具体值

getrange 获取指定区间范围内的值,类似between…and的关系,从0到-1表示全部

在这里插入图片描述

setex(set with expire)键秒值

setnx(set if not exist)

setnx key value 如果key不存在就设置成功,返回1
setnx key value2 如果key已经存在,则设置失败,返回0

在这里插入图片描述

mset Mset 命令用于同时设置一个或多个 key-value 对

mget Mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil

msetnx 当所有 key 都成功设置,返回 1 。 如果所有给定 key 都设置失败(至少有一个 key 已经存在),那么返回 0 。该命令是原子操作

在这里插入图片描述

getset 先get再set

如果没有旧值,返回nil ,有旧值,返回旧值

在这里插入图片描述

Hash (哈希,类似Java里的map)

哈希key-value 模式不变,但value是一个键值对
hash是一个string类型的field和value的映射表,hash特别适合用于存储对象

hset、hget 命令用于为哈希表中的字段赋值

hmset、hmget 同时将多个field-value对设置到哈希表中。会覆盖哈希表中已存在的字段。

hgetall 用于返回哈希表中,所有的字段和值

hdel 用于删除哈希表 key 中的一个或多个指定字段

在这里插入图片描述

hlen 获取哈希表中字段的数量

在这里插入图片描述

hexists 查看哈希表的指定字段是否存在。

在这里插入图片描述

hkeys 获取哈希表中的所有域(field)

hvals 返回哈希表所有域(field)的值。

在这里插入图片描述

hincrby 为哈希表中的字段值加上指定增量值

在这里插入图片描述

hsetnx 为哈希表中不存在的的字段赋值 。

在这里插入图片描述

List (列表)

lpush:将一个或多个值插入到列表头部。(左)

rpush:将一个或多个值插入到列表尾部。(右)

lrange:返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。

1、其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。
2、也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此
类推。

在这里插入图片描述

lpop 命令用于移除并返回列表的第一个元素。当列表 key 不存在时,返回 nil

rpop 移除列表的最后一个元素,返回值为移除的元素。

在这里插入图片描述

lindex,按照索引下标获得元素(-1代表最后一个,0代表是第一个)

在这里插入图片描述

llen 用于返回列表的长度

在这里插入图片描述

lrem key 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。

在这里插入图片描述

Ltrim key 对一个列表进行修剪(trim)

让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除

在这里插入图片描述

rpoplpush 移除列表的最后一个元素,并将该元素添加到另一个列表并返回。

在这里插入图片描述

lset key index value 将列表 key 下标为 index 的元素的值设置为 value

index 超出范围会报错

在这里插入图片描述

linsert key before/after value value1

用于在列表的元素前或者后插入元素
将值value1插入到列表key当中,位于值value之前或之后

在这里插入图片描述

Set (集合)

sadd 将一个或多个成员元素加入到集合中,不能重复

smembers 返回集合中的所有的成员

sismember 判断成员元素是否是集合的成员

在这里插入图片描述

scard,获取集合里面的元素个数

srem key value 用于移除集合中的一个或多个成员元素

srandmember key 命令用于返回集合中的一个随机元素

在这里插入图片描述

spop key 用于移除集合中的指定 key 的一个或多个随机元素

在这里插入图片描述

smove set1 set2 k

将指定元素k从set1集合移动到set2集合

在这里插入图片描述

集合类

差集: sdiff

在这里插入图片描述

交集:sinter

在这里插入图片描述

并集: sunion

在这里插入图片描述

Zset(sorted set :有序集合)

在set基础上,加一个score值,
set是k1 v1,v2,v3的形式,
zset是k1 score1 v1 ,score2 v2的形式

zadd 将一个或多个成员元素及其分数值加入到有序集当中

zrange 返回有序集中,指定区间内的成员

在这里插入图片描述

zrangebyscore 返回有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列

+inf无穷大量﹢∞
-inf无穷小量﹣∞

  • 显示整个有序集
    在这里插入图片描述

  • 递增排列
    在这里插入图片描述

  • 递减排列
    在这里插入图片描述

  • 条件 ,显示分数小于2500的成员
    在这里插入图片描述

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

zcard 命令用于计算集合中元素的数量。

在这里插入图片描述

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

在这里插入图片描述

zrank 返回有序集中指定成员的排名。其中有序集成员按分数值递增(从小到大)顺序排列。

在这里插入图片描述

zrevrank 返回有序集中成员的排名。其中有序集成员按分数值递减(从大到小)排序。

在这里插入图片描述

文章知识点与官方知识档案匹配,可进一步学习相关知识
MySQL入门技能树数据库组成31720 人正在系统学习中

与[转帖]Redis五大数据类型及用法相似的内容:

[转帖]Redis五大数据类型及用法

Redis五大数据类型 Redis键 keys * 查看所有的key exists key,判断key是否存在 expire key seconds 给key设置生存时间,当key过期后,会被自动删除 ttl key 查看该key还有多少秒过期, -1表示永不过期,-2表示已过期 type key

[转帖]Redis进阶实践之五Redis的高级特性

https://www.cnblogs.com/PatrickLiu/p/8341951.html 一、引言 上一篇文章写了Redis的特征,使用场景,同时也介绍了Redis的基本数据类型,redis的数据类型是操作redis的基础,这个必须好好的掌握。今天我们开始介绍一些Redis的高级特性,虽然

[转帖]Redis学习五(Spring Cache For Redis).

https://www.cnblogs.com/jmcui/p/8410560.html 一、概述 缓存(Caching)可以存储经常会用到的信息,这样每次需要的时候,这些信息都是立即可用的。 常用的缓存数据库: Redis 使用内存存储(in-memory)的非关系数据库,字符串、列表、集合、散列

[转帖]redis惰性删除 lazy free 源码剖析,干货满满

目录 前言 数据删除场景 lazy free 概念 配置 源码剖析(版本 6.2.6) 场景一:客户端执行的显示删除/清除命令 场景二:某些指令带有的隐式删除命令 场景三:删除过期数据 场景四:内存淘汰数据删除 场景五:主从同步清空从库 小结 前言 都说 redis 是单线程的,其实并不是说 red

[转帖]Redis 7 参数 修改 说明

2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww

[转帖]Redis 7.0 三节点哨兵(Sentinel)高可用 环境搭建手册

2022-06-17 16:253480原创Redis 本文链接:https://www.cndba.cn/dave/article/108088 1 哨兵高可用架构说明 Redis 最早的高可用方案是主从复制,但这种方案存在一个问题,就是当主库宕机后,从库不会自动切成主库,需要人工干预。 所有在主

[转帖]Redis 备份与恢复(RDB/AOF) 说明

2022-06-16 20:364580原创Redis 本文链接:https://www.cndba.cn/dave/article/108068 1 RDB 方式 1.1 RDB 备份恢复说明 Redis 的备份恢复有两种方法:RDB和AOF。 其中RDB 文件是一个经过压缩的二进制文件,有两个R

[转帖]Redis 性能优化的 13 条军规!史上最全

https://zhuanlan.zhihu.com/p/118532234 Redis性能优化实战方案 Redis 是基于单线程模型实现的,也就是 Redis 是使用一个线程来处理所有的客户端请求的,尽管 Redis 使用了非阻塞式 IO,并且对各种命令都做了优化(大部分命令操作时间复杂度都是 O

[转帖]Redis性能调优万字总结,面试必问!

https://zhuanlan.zhihu.com/p/541745804 于哥你好,最近面试挺多的,尤其是在问到java面试题,Redis被问的特别多,比如 Redis的内存模型? Redis的底层数据结构是怎么的? Redis的多线程模型 Redis的集群原理 Redis的雪崩,击穿,穿透怎么

[转帖]Redis连接未释放,造成TCP连接数过多

https://segmentfault.com/a/1190000022704886 早上看到服务器告警通知,TCP连接数比较高,达到5000多,我设置的阈值是5000,正常TCP连接不会这么高,这样的一个阈值我可以提前知道有问题早点解决,不至于后面引起一系列问题,甚至拖垮服务器。 排查 登陆服务