Redis系列---Redis数据结构和常用命令1/5

。_饼干妹妹 提交于 2020-08-11 02:55:28

简介

Redis是一个开源的使用C语言编写、支持网络、可基于内存也可持久化的日志类型、Key-Value数据库,
并 提供多种语言的API。

本质是客户端-服务端应用软件程序。存储在内存中,因此操作速度比数据库更快。
特点:使用简单、性能强悍、功能应用场景丰富。

1. 常用命令

命令 含义
DEL Key 在key存在时候删除key
DUMP Key 序列化给定key,并返回被序列化的值
EXISTS Key 检查给定key是否存在
EXPIRE Key seconds 为给定key设置过期时间,以秒计
TTL Key 以秒为单位,返回给定key的剩余生存时间(TTL,time to live)
TYPE Key 返回key所存储的值的类型

2. 数据结构

(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

GEO 3.2版本开始对GEO(地理位置)的支持
使用场景:LBS应用开发

命令 含义
GEOADD 增加地理位置的坐标,可以批量添加地理位置。
GEODIST 获取两个地理位置的距离
GEOHASH 获取某个地理位置的geohash值
GEOPOS 获取指定位置的坐标,可以批量获取多个地理位置的坐标
GEOPADIUS 根据给定地理位置坐标获取指定范围内的地理位置集合(注意:该命令的中心点由输入的经纬度决定)
GEORADIUSBYMEMBER 根据给定地理位置获取指定范围内的位置信息集合(注意:该命令的中心点由给定的位置元素决定)

(7)Stream

Stream 5.0版开始的新结构“流”
使用场景:消费者生产者场景(类似MQ)

命令 含义
XADD 往指定的流中添加消息
XLEN stream流中的消息数量
XDEL 删除流中的消息
XRANGE 返回流中满足给定ID范围的消息
XREAD 从一个或者多个流中读取信息
XINFO 检索关于流和关联的消费者组的不同的信息

3.新特性

【pipeline】

应用场景:
大量数据加载:数据库启动时,把数据库数据提前加载到redis,而数据库内容大;
异步处理:redis内容情况、redis重装。

单命令模式/pipeline模式1s内传输数据量对比:6-7倍 70万:12万

【发布-订阅】(没有持久化)
应用场景:删除超时订单

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!