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

Redis 数据库

1.字符串(String)

用途

字符串是 Redis 最基本的数据类型,可以存储任何形式的文本,

如JSON、XML或简单的字符串值。

它常用于缓存用户会话、计数器、缓存数据库查询结果等。

操作

字符串类型支持设置(SET)、获取(GET)、删除(DEL)、自增(INCR)、自减(DECR)、追加(APPEND)等操作:

  • 设置值:SET key value

  • 获取值:GET key

  • 设置过期时间:EXPIRE key timeout

  • 删除键:DEL key

  • 批量设置值:MSET key1 value1 key2 value2 ...

  • 批量获取值:MGET key1 key2 ...

  • 自增/自减:INCR key / DECR key 或 INCRBY key increment / DECRBY key decrement

特性

字符串类型是动态字符串,可以修改内容,并且最大长度为512MB。

2.列表(List)

用途

列表是一个简单的字符串列表,按照插入顺序排序。

列表常用于实现消息队列或执行原子推入或弹出操作。

操作

列表类型支持从两端推入元素(LPUSHRPUSH)、弹出元素(LPOPRPOP)、获取列表元素(LRANGE)、获取列表长度(LLEN)等操作。

  • 在头部插入元素:LPUSH key value1 [value2] ...

  • 在尾部插入元素:RPUSH key value1 [value2] ...

  • 获取列表指定范围内的元素:LRANGE key start stop

  • 移除并获取列表头部元素:LPOP key

  • 移除并获取列表尾部元素:RPOP key

  • 获取列表长度:LLEN key

特性

列表是双向链表结构,支持从头部或尾部进行O(1)时间复杂度的弹出和推入操作。

3.集合(Set)

用途

集合是一个无序集合,自动处理重复元素。

集合常用于实现交集、并集、差集等操作,例如,用于标签系统、用户关注列表等。

操作

集合类型支持添加元素(SADD)、移除元素(SREM)、获取集合中的元素(SMEMBERS)、检查元素是否存在(SISMEMBER)等操作。

  • 添加成员:SADD key member1 [member2] ...

  • 获取集合中的所有成员:SMEMBERS key

  • 判断成员是否存在于集合中:SISMEMBER key member

  • 删除集合中的一个或多个成员:SREM key member1 [member2] ...

  • 返回给定所有集合的交集:SINTER key1 [key2] ...

  • 返回所有给定集合的并集:SUNION key1 [key2] ...

Redis:0>sadd empno 8000
"1"
Redis:0>sadd empno 8001
"1"
Redis:0>sadd empno 8002
"1"
Redis:0>sadd empno 8003 8004 8005
"3"
Redis:0>smembers empno
 1)  "8000"
 2)  "8001"
 3)  "8002"
 4)  "8003"
 5)  "8004"
 6)  "8005"
Redis:0>sadd empno 8001
"0"
Redis:0>smembers empno
 1)  "8000"
 2)  "8001"
 3)  "8002"
 4)  "8003"
 5)  "8004"
 6)  "8005"
Redis:0>scard empno
"6"
Redis:0>sismembers empno 8000
"ERR unknown command 'sismembers'"
Redis:0>sismember empno 8000
"1"
Redis:0>sismember empno 8001
"1"
Redis:0>srem empno 8000 80001
"1"
Redis:0>smembers empno
 1)  "8001"
 2)  "8002"
 3)  "8003"
 4)  "8004"
 5)  "8005"
Redis:0>spop empno
"8001"
Redis:0>smember empno
"ERR unknown command 'smember'"
Redis:0>smembers empno
 1)  "8002"
 2)  "8003"
 3)  "8004"
 4)  "8005"
Redis:0>srandmember empno 3
 1)  "8003"
 2)  "8002"
 3)  "8004"

特性

集合内部使用哈希表实现,因此添加、删除、查找元素的操作都是O(1)时间复杂度。

4.有序集合(Sorted Set)

用途

有序集合与集合类似,但它为每个元素关联了一个分数,使得元素能够按照分数进行排序。

有序集合常用于排行榜、带权重的消息队列等场景。

操作

有序集合类型支持添加元素(ZADD)、移除元素(ZREM)、根据分数或元素值获取元素排名(ZRANKZREVRANK)、获取指定分数范围内的元素(ZRANGEBYSCORE)等操作。

  • 添加成员及其分数:ZADD key score1 member1 [score2 member2] ...

  • 通过索引区间返回有序集合中指定区间内的成员:ZRANGE key start stop [WITHSCORES]

  • 增加指定成员的分数:ZINCRBY key increment member

  • 获取有序集合中成员的分数:ZSCORE key member

  • 删除有序集合中的一个或多个成员:ZREM key member [member] ...

Redis:0>select 1
"OK"
Redis:1>zadd keyword 0 "刘德华" 0 "成龙" 0 "张家辉"
"3"
Redis:1>zincrby keyword 1 "刘德华"
"1"
Redis:1>zincrby keyword 5 "成龙"
"5"
Redis:1>zincrby keyword 3 "张家辉"
"3"
Redis:1>zrevrange keyword 0 -1
 1)  "成龙"
 2)  "张家辉"
 3)  "刘德华"
Redis:1>zcard keyword
"3"
Redis:1>zincrby keyword 5000 "刘德华"
"5001"
Redis:1>zincrby keyword 500 "成龙"
"505"
Redis:1>zincrby keyword 3000 "张家辉"
"3003"
Redis:1>zdecrby keyword 100 "成龙"
"ERR unknown command 'zdecrby'"
Redis:1>zcount keyword 3000 5000
"1"
Redis:1>zcount keyword 5 10
"0"
Redis:1>zscore keyword "张家辉"
"3003"
Redis:1>zrangebyscore keyword 3000 5001
 1)  "张家辉"
 2)  "刘德华"
Redis:1>zrangebyscore keyword 3003 5001
 1)  "张家辉"
 2)  "刘德华"
Redis:1>zrangebyscore keyword 3000 (5001
 1)  "张家辉"
Redis:1>zrangebyscore keyword 3000 +inf
 1)  "张家辉"
 2)  "刘德华"
Redis:1>zrangebyscore keyword -inf 3000
 1)  "成龙"
Redis:1>zrevrangebyscore keyword 5001 3000
 1)  "刘德华"
 2)  "张家辉"
Redis:1>zrank keyword "张家辉"
"1"
Redis:1>zrank keywrod "刘德华"
null
Redis:1>zrank keyword "刘德华"
"2"
Redis:1>zrevrank keyword "刘德华"
"0"
Redis:1>zrem keyword "成龙","张家辉"
"2"
Redis:1>zmember keyword
"ERR unknown command 'zmember'"
Redis:1>zrevrange keyword 0 -1
 1)  "刘德华"
Redis:1>zremrangebyrank keyword 0 2
"1"
Redis:1>zrevrange keyword 0 -1

Redis:1>zremrangebyscore keyword -inf (5000
"0"

特性

有序集合使用哈希表和跳跃表(skip list)实现,确保了元素的快速插入、删除和有序访问。

5.哈希(Hash)

用途

哈希是一个键值对集合,可以存储对象。

哈希常用于存储、缓存和管理对象,例如用户信息、配置信息等。

操作

哈希类型支持设置字段(HSET)、获取字段(HGET)、删除字段(HDEL)、检查字段存在(HEXISTS)、获取所有字段和值(HGETALL)等操作。

  • 设置哈希表中的字段值:HSET key field value

  • 获取哈希表中指定字段的值:HGET key field

  • 删除哈希表中的指定字段:HDEL key field [field] ...

  • 获取哈希表中所有字段:HKEYS key

  • 获取哈希表中所有值:HVALS key

  • 获取哈希表中字段和值的数量:HLEN key

特性

哈希内部使用哈希表实现,字段名是字符串,字段值可以是字符串或数字,

适合存储对象和映射表。


http://www.kler.cn/a/458976.html

相关文章:

  • 腾讯云智能结构化 OCR:驱动多行业数字化转型的核心引擎
  • Luma AI 简单几步生成视频
  • 【Python学习(六)——While、for、循环控制、指数爆炸】
  • MyBatis-plus sql拦截器
  • Swift Combine 学习(五):Backpressure和 Scheduler
  • 探索 AIGC 的基础知识:人工智能生成内容的全景视图
  • 百度地图绘制行政区域及设置中心点
  • 曹雪芹,梦断红楼留不朽
  • 模仿微信小程序wx.showModal自定义弹窗,内容可以修改
  • 云起无垠入选中国信息通信研究院2024年度首期“磐安”优秀案例
  • HTML——16.相对路径
  • MLA:多头潜在注意力
  • 【YashanDB知识库】启动yasom时报错:sqlite connection error
  • 概率论与随机过程--作业6
  • 小程序笔记
  • Linux系统编程之文件系统的挂载
  • 海陆并进 陵水农业向深图强
  • cpp编译链接与命名空间
  • ​虚幻引擎UE5渲染不够快的解决办法
  • 4种更快更简单实现Python数据可视化的方法
  • 001__VMware软件和ubuntu系统安装(镜像)
  • 精准测算与优化策略:大流量网站海外服务器带宽需求分析
  • HTML——28.音频的引入
  • 如何开发一个前端自动回复机器人:从零开始的入门指南
  • 嵌入式应用实例→电子产品量产工具→UI界面的绘制和测试
  • 走方格(蓝桥杯2020年试题H)