049. Redis 数据结构和常用命令

可莉
• 阅读 705

1. Redis 介绍


  • Redis 是一个开源的使用 C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。
  • 本质是客户端-服务端应用软件程序。
  • 特点是使用简单、性能强悍、功能应用场景丰富。

2. 通用命令


命令

描述

DEL key

该命令用于在 key 存在时删除 key。

DUMP key

序列化给定 key,并返回被序列化的值。

EXISTS key

检查给定 key 是否存在。

EXPIRE key seconds

为给定 key 设置过期时间,以秒记。

TTL key

以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。

TYPE key

返回 key 所存储的值得类型。

3. 数据结构


1. String

  • String 数据结构是简单的 key-value 类型,value 其实不仅是 String,也可以是数字。

  • 使用场景:微博数,粉丝数(常规计算)

  • 常用命令

    命令

    描述

    Get

    获取指定 key 的值

    Set

    设置指定 key 的值

    Incr

    将 key 中存储的数字值增一

    Decr

    将 key 中存储的数字值减一

    Mget

    获取所有(一个或多个)给定 key 的值

2. List

  • List 就是链表。

  • 使用场景:微博的关注列表,粉丝列表

  • 常用命令

    命令

    描述

    Lpush

    将一个或多个值插入到列表头部

    Rpush

    在列表中添加一个或多个值

    Lpop

    移除并获取列表的第一个元素,返回值为移除的元素

    Rpop

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

    Lrange

    获取所有(一个或多个)给定 key 的值

3. Set

  • Set 就是一个集合,集合的概念就是一堆不重复值的组合。利用 Redis 提供的 Set 数据结构,可以存储一些集合性的数据。

  • 使用场景:实现如共同关注、共同喜好、二度好友。

  • 常用命令

    命令

    描述

    Sadd

    向集合中添加一个或多个成员

    Spop

    移除并返回集合中的一个随机元素

    Smembers

    返回集合中的所有成员

    Sunion

    返回所有给定集合的并集

4. Sorted set

  • Sorted set 的使用场景与 set 类似,区别是 set 不是自动有序的,而 sorted set 可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且是插入有序的,即自动排序。

  • 使用场景:排行榜、按照用户投票和时间排序

  • 常用命令

    命令

    描述

    Zadd

    向有序集合添加一个或多个成员,或者更新已存在成员的分数

    Zrange

    通过索引区间返回有序集合中指定区间内的成员

    Zrem

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

    Zcard

    获取有序集合的成员数

5. Hash

  • Hash 是一个 String 类型的 field 和 value 的映射表。

  • 使用场景:存储部分变更数据,如用户信息。

  • 常用命令

    命令

    描述

    Hget

    获取存储在哈希表中指定字段的值

    Hset

    将哈希表 key 中的字段 field 的值设为 value

    Hgetall

    获取在哈希表中指定 key 的所有字段和值

6. GEO

  • 3.2 版本开始对 GEO(地理位置)的支持。

  • 使用场景:LBS 应用开发。

  • 常用命令

    命令

    描述

    GEOADD

    增加地理位置的坐标,可以批量添加地理位置

    GEODIST

    获取两个地理位置的距离

    GEOHASH

    获取某个地理位置的 geohash 值

    GEOPOS

    获取指定位置的坐标,可以批量获取多个地理位置的坐标

    GEORADIUS

    根据给定地理位置坐标获取指定范围内的地理位置集合(注意:该命令的中心点由输入的经度和纬度决定)

    GEORADIUSBYMEMBER

    根据给定成员的位置获取指定范围内的位置信息集合(注意:该命令的中心点是由给定的位置元素决定)

7. Stream

  • 5.0 版本开始的新结构 “流”

  • 使用场景:消费者生产者场景(类似 MQ)

  • 常用命令

    命令

    描述

    XADD

    往指定的流中添加消息

    XLEN

    stream 流中的消息数量

    XDEL

    删除流中的消息

    XRANGE

    返回流中满足给定 ID 范围的消息

    XREAD

    从一个或者多个流中读取消息

    XINFO

    检索关于流和关联的消费者组的不同的信息

4. Spring 文档


点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
Linux系统环境部署redis
Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、KeyValue数据库,并提供多种语言的API。!linux环境部署redislinux环境部署redis(https://www.linuxprobe.com/wpcontent/uploads/2018/03/redislogo
Stella981 Stella981
3年前
Spring Boot(十二):看完这篇,Redis你就入门了
一、Redis简介1、Redis(RemoteDictionaryServer远程字段服务)是一个开源的使用ANSIC语言编写、支持网络、科技与内存亦可持久化的日志型、keyvalue数据库,并提供多种语言的API。2、Redis是一个keyvalue存储系统,它支持存储的value类型相对更多,包括string、list、set
Stella981 Stella981
3年前
Redis 常见 7 种使用场景
Redis常见7种使用场景(PHP实战)Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、KeyValue数据库,并提供多种语言的API。本篇文章,主要介绍利用PHP使用Redis,主要的应用场景。简单字符串缓存实战$redis
Stella981 Stella981
3年前
Redis快速入门,学会这15点,真的够用了!
1、Redis简介REmoteDIctionaryServer(Redis)是一个由SalvatoreSanfilippo写的keyvalue存储系统。Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、KeyValue数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值
Stella981 Stella981
3年前
Redis 概念以及底层数据结构
Redis简介REmoteDIctionaryServer(Redis)是一个由SalvatoreSanfilippo写的keyvalue存储系统。Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、KeyValue数据库,并提供多种语言的API。它通常被称为数据结
Stella981 Stella981
3年前
Redis总结
介绍:Redis(全称为REmoteDIctionaryServer)是一个由SalvatoreSanfilippo写的keyvalue存储系统。Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、KeyValue数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(v
Stella981 Stella981
3年前
049. Redis 数据结构和常用命令
1\.Redis介绍Redis是一个开源的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、KeyValue数据库,并提供多种语言的API。本质是客户端服务端应用软件程序。特点是使用简单、性能强悍、功能应用场景丰富。2\.通用命令命令描述DE
Stella981 Stella981
3年前
Redis合集系列(一)
Redis下载安装1.关于JDK版本至少使用JDK8版本,请下载JDK8或者更高版本2.什么是RedisRedis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、KeyValue数据库,并提供多种语言的API。换句话说,Redis就像是一个HashMap,不过不是在JVM中