当前位置: 首页 > news >正文

Redis常见数据结构

目录

基本介绍

特点:

全局命令

数据类型:

String

Hash

List

Set

Zset

基本介绍

Redis是一个在内存中存储数据的中间件,可作为数据库,缓存,消息队列等。

特点:

持久化:Redis会把数据存储在内存中,内存的数据是易失的,进程退出和重启都会使内存中的数据丢失,Redis会把数据存储在硬盘上进行备份,重启后Redis会重新加载硬盘中的备份数据,使Redis的内存恢复到重启前的状态。

支持集群:引入多个主机部署多个Redis节点,每个节点可以存储数据的一部分。

高可用:Redis自身支持主从结构,从节点相当于主节点的备份。

快速:Redis数据在内存中,读写的速度远远快于MySQL(数据存储在硬盘中)。Redis的核心功能都是比较简单的逻辑,不支持一些复杂的查询。Redis使用epoll的I/O多路复用的方式(使用一个线程管理多个Socket)。Redis是单线程模型,减少了不必要线程之间的竞争开销。

基本类型:Redis基于键值对存储数据,类似于哈希表,使用<key,value>的形式存储数据,key的类型固定为字符串类型,value可以支持多种类型:String(字符串),hash(哈希),set(集合),zset(有序集合),list(链表)。

全局命令

redis -cli                 本机登录

keys [patter]           查询匹配的key

type key                 查看对应的value类型

ttl key                     查看过期剩余时间

exists key               查看key是否存在

del ke                     删除key

scan cursor(光标 指向当前遍历位置) count(每次获取元素个数)  渐进遍历

数据类型:

String

set key value                 设置value

get key                          获取value

set key value ex            设置key和value,加上过期时间

set key value nx|xx         nx:key不存在时设置值  xx:存在时设置

mset key vslue                 一次设置多个key

mget                                一次获取多个key对应的value

incr key                            对应key的value+1

incrby key                        对应key的value+n

decr key                           对应key的value -1

decrby key                       对应key的value -n

incrbyfloat key                 针对小数的加减

append key value             拼接字符串

getrange key start end      获取指定范围字符串

setrange key offset value   从指定位置开始替换字符

strlen    获取字符串长度

Hash

hset key field value [field vlaue ...]        设置key中的 fleld value

hget key field                                         获取key对应的field

hexists key field                                     判断hash中key对应的field是否存在 

hdel key field [field]                                删除hash对应的key中field字段

hkeys key                                               获取key中的所有faild字段

hvals key                                                获取hash中的所有value

hgetall key                                              获取hash中的所有字段和value

hmget key field [field..]                            一次查询多个field

hset nx key field key                               设置值,不存在设置成功

hincrby key field n                                   对应faild的value加减n

hincrbyfloat key field n                            加减小数

hstrlen key field                                       计算value的字符串长度

hlen key                                                   获取哈希元素个数

List

lpush key element [element...]        左侧插入元素

lpushx key element [element]         存在元素则插入元素,不存在直接返回

rpush key element [element]           右侧插入元素 

rpushx key element [element]         存在元素则插入元素,不存在直接返回

lrange key start stop                        指定范围查看list

lpop key                                           左侧取出元素

rpop key                                           右侧取出元素

lindex key index                                获取从左开始index元素位置

linsert key before | after pivot element        指定位置前后插入元素

llen key                                                        获取元素个数

lrem key count element                                删除指定个数的元素

ltrim key start stop                                        删除指定范围外元素

lset key index element                                 根据下标修改元素

blpop和brpop                                                带有阻塞的插入元素

blpop key[key...] timeout                               带有超时时间

lpush 和 rpop 结合类似数据结构中的栈

lpush 和 lpush 结合类似数据结构中的队列 

Set

sadd key member [member...]  添加元素

smembers key                        获取集合中所有元素

sismember key member          判断元素是否存在集合中

spop key [count]                        随机删除元素

srandmember [count]                随机取出元素               

smove source destination member        将member删除,插入到目标集合中

srem key member [member...]                删除元素一个或多个

sinter key [key...]                                       求集合交集

sinterstore destination key [key...]              计算交集,结果放入集合中

sunion key [key]                                        计算并集

sunionstore destination key[key...]             计算并集,结果放入集合中

sdiff key [key...]                                            计算差集

sdiffstore destination key [key...]                计算差集,结果放入集合中

Zset

zadd key [NX | XX] [GT | LT] [INCR] score member[member...]  添加元素

zrange start stop with scores               使用下标指定查询集合,带有分数

zcard key                                               获取元素个数

zcount key min max                                返回分数在区间min和max之间

zrevrange key min max with scores         按照分数逆序打印

zrevrangebyscore key min max with scores          按照分数逆序打印,带有分数

zpopmax key count                                        删除并返回分数最高的count个元素

bzpopmax key [key...] timeout                        带有超时时间的阻塞删除

zpopmin key count                                        删除有序集合中最小count个元素

bzpopmin key [key...] timeout                        带有超时时间的阻塞删除

zrank key member                                         返回指定元素的排名

zrevrank key member                                     降序返回元素排名

zscore key member                                        更具member查找元素

zrem key member [member]                        删除指定有序集合元素

zremrangebyrank key start stip                     规定下标范围删除

zremrangebyscore key min max                    根据分数区间进行删除

zincrby key increment member                       对分数进行增加,保持集合升序

zinterstore destination numkeys key[key...] [weights weight[weight...]] 

[aggregate <sum | min | max>]        交集

zunionstore destination numkeys key[key...] [weights weight[weight...]]

[aggregate <sum | min | max>]        并集

http://www.lryc.cn/news/536323.html

相关文章:

  • fps动作系统9:动画音频
  • 十四、GitLab 流水线自动化部署之 Windows Server
  • 数据库数据恢复—MongoDB丢失_mdb_catalog.wt文件导致报错的数据恢复案例
  • mysql8.0使用MGR实现高可用与利用MySQL Router构建读写分离MGR集群
  • 基于Ubuntu2404搭建k8s-1.31集群
  • Golang的图形编程应用案例
  • PostgreSQL 错误代码 23505 : ERROR: duplicate key value violates unique constraint
  • 基于SpringBoot和PostGIS的省域“地理难抵点(最纵深处)”检索及可视化实践
  • MySQL InnoDB引擎 MVCC
  • 服务器使用centos7.9操作系统前需要做的准备工作
  • 【Prometheus】prometheus结合cAdvisor监控docker容器运行状态,并且实现实时告警通知
  • 【Stable Diffusion模型测试】测试ControlNet,没有线稿图?
  • 算法刷题-数组系列-卡码网.区间和
  • Druid GetConnectionTimeoutException解决方案之一
  • 【JavaScript爬虫记录】记录一下使用JavaScript爬取m4s流视频过程(内含ffmpeg合并)
  • CSDN2024年度总结|乾坤未定你我皆是黑马|2025一起为了梦想奋斗加油少年!!!
  • 【前端】 react项目使用bootstrap、useRef和useState之间的区别和应用
  • 联想电脑如何进入BIOS?
  • 蓝桥杯单片机大模板(西风)
  • 20250213刷机飞凌的OK3588-C_Linux5.10.209+Qt5.15.10_用户资料_R1
  • 2.13学习记录
  • 【DeepSeek】Deepseek辅组编程-通过卫星轨道计算终端距离、相对速度和多普勒频移
  • JavaEE架构
  • Docker 网络的几种常见类型
  • C++ 常用的设计模式
  • 【设计模式】01- 一文理解常用设计模式-“创建型模式”篇
  • 在ArcGIS JS API中使用WebGL实现波纹扩散特效
  • 我用AI做数据分析之四种堆叠聚合模型的比较
  • 《LSTM与HMM:序列建模领域的双雄对决》
  • Flutter 的 Widget Key 提议大调整?深入聊一聊 Key 的作用