Redis 在实际开发中起到的作用详解

存储 存储软件 Redis
redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存、事件发布或订阅、高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串、哈希、列表、队列、集合结构直接存取,基于内存,可持久化。

 redis是什么

redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存、事件发布或订阅、高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串、哈希、列表、队列、集合结构直接存取,基于内存,可持久化。

支持的语言

Redis 在实际开发中起到的作用详解

 

redis的应用场景有哪些

1、会话缓存(最常用)

2、消息队列,比如支付

3、活动排行榜或计数

4、发布、订阅消息(消息通知)

5、商品列表、评论列表等

redis数据类型

Redis一共支持五种数据类:string(字符串)、hash(哈希)、list(列表)、set(集合)和zset(sorted set 有序集合)。

1)string(字符串)

它是redis最基本的数据类型,一个key对应一个value,需要注意是一个键值***存储512MB。

Redis 在实际开发中起到的作用详解

 

(2)hash(哈希)

redis hash是一个键值对的集合, 是一个string类型的field和value的映射表,适合用于存储对象

Redis 在实际开发中起到的作用详解

 

(3)list(列表)

是redis简单的字符串列表,它按插入顺序排序

Redis 在实际开发中起到的作用详解

 

(4)set(集合)

是string类型的无序集合,也不可重复

Redis 在实际开发中起到的作用详解

 

(5)zset(sorted set 有序集合)

是string类型的有序集合,也不可重复

sorted set中的每个元素都需要指定一个分数,根据分数对元素进行升序排序,如果多个元素有相同的分数,则以字典序进行升序排序,sorted set 因此非常适合实现排名

Redis 在实际开发中起到的作用详解

 

redis服务相关的命令

Redis 在实际开发中起到的作用详解

 

slect #选择数据库(数据库编号0-15)

quit #退出连接

info #获得服务的信息与统计

monitor #实时监控

config get #获得服务配置

flushdb #删除当前选择的数据库中的key

flushall #删除所有数据库中的key

redis的发布与订阅

redis发布与订阅(pub/sub)是它的一种消息通信模式,一方发送信息,一方接收信息。

下图是三个客户端同时订阅同一个频道

Redis 在实际开发中起到的作用详解

 

下图是有新信息发送给频道1时,就会将消息发送给订阅它的三个客户端

Redis 在实际开发中起到的作用详解

 

redis持久化

redis持久有两种方式:Snapshotting(快照),Append-only file(AOF)

Snapshotting(快照)

1、将存储在内存的数据以快照的方式写入二进制文件中,如默认dump.rdb中

2、save 900 1

#900秒内如果超过1个Key被修改,则启动快照保存

3、save 300 10

#300秒内如果超过10个Key被修改,则启动快照保存

4、save 60 10000

#60秒内如果超过10000个Key被修改,则启动快照保存

Append-only file(AOF)

1、使用AOF持久时,服务会将每个收到的写命令通过write函数追加到文件中(appendonly.aof)

2、AOF持久化存储方式参数说明

  1. appendonly yes 

#开启AOF持久化存储方式

  1. appendfsync always 

#收到写命令后就立即写入磁盘,效率最差,效果***

  1. appendfsync everysec 

#每秒写入磁盘一次,效率与效果居中

  1. appendfsync no 

#完全依赖OS,效率***,效果没法保证。

责任编辑:武晓燕 来源: 今日头条
相关推荐

2010-10-09 09:04:53

MySql中delim

2011-08-22 15:47:27

Oracle临时表存储过程

2009-11-09 11:21:32

路由策略

2010-01-08 18:02:33

VB.NET事件

2009-12-30 10:23:30

VLAN技术

2023-09-14 14:18:27

光纤

2010-02-25 17:22:39

WCF服务行为

2010-01-14 10:35:34

VB.NET指针

2020-02-29 14:41:08

SD-WAN网络NetOps

2009-11-19 15:14:43

路由器系统

2021-01-21 05:46:22

JavaLambda开发

2022-06-06 09:41:21

云计算人工智能

2010-01-15 13:30:53

VB.NET Tool

2010-01-20 18:34:46

VB.NET Syst

2010-11-09 10:25:09

SlowLogMySQL

2013-01-24 09:53:12

GitHub

2024-08-26 14:49:13

RocketMQ消息Java

2009-12-03 18:21:15

软路由技术

2010-01-19 15:21:55

VB.NET区域性

2010-03-17 12:37:51

Python定时器
点赞
收藏

51CTO技术栈公众号