Redis是什么

Stella981
• 阅读 1670

redis是Nosql数据库,是一个key-value存储系统。可用于缓存,事件发布或订阅,高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。虽然redis是key-value的存储系统,但是redis支持的value存储类型是非常的多,比如字符串、链表、集合、有序集合和哈希。

那么为什么要使用类似redis这样的Nosql数据库呢?

1) 当数据量的总大小一个机器放不下时;

2) 数据索引一个机器的内存放不下时;

3) 访问量(读写混合)一个实例放不下

1,redis是什么

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

2,支持的语言

Redis是什么

3,redis的应用场景有哪些

1,会话缓存(最常用)
2,消息队列,
比如支付3,活动排行榜或计数
4,发布,订阅消息(消息通知)
5,商品列表,评论列表等

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

(1)字符串(字符串)
它是redis的最基本的数据类型,一个键对应一个值,需要注意是一个键值最大存储512MB。

Redis是什么

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

Redis是什么

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

Redis是什么

(4)组(集合)
是字符串类型的无序集合,也不可重复

Redis是什么

(5)zset(sorted set有序集合)
是string类型的有序集合,也不可重复
有序集合中的每个元素都需要指定一个分数,根据分数对元素进行升序排序,如果多个元素有相同的分数,则以字典序进行升序排序,sorted set因此非常适合实现排名

Redis是什么

5,redis的服务相关的命令

Redis是什么

slect#选择数据库(数据库编号0-15)
退出#退出连接
信息#获得服务的信息与统计
monitor#实时监控
config get#获得服务配置
flushdb#删除当前选择的数据库中的key
flushall#删除所有数据库中的键

6,redis的发布与订阅

redis的发布与订阅(发布/订阅)是它的一种消息通信模式,一方发送信息,一方接收信息。
下图是三个客户端同时订阅同一个频道

Redis是什么

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

7,redis的持久化

redis持久有两种方式:快照(快照),仅附加文件(AOF)

快照(快照)

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

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

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

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

仅附加文件(AOF)

1,使用AOF持久时,服务会将每个收到的写命令通过写函数追加到文件中(appendonly.aof)
2,AOF持久化存储方式参数说明
    appendonly yes  

           #开启AOF持久化存储方式 
    appendfsync always 

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

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

         #完全依赖操作系统,效率最佳,效果没法保证

8,redis的性能测试

自带相关测试工具

Redis是什么

实际测试同时执行100万的请求

Redis是什么

点赞
收藏
评论区
推荐文章
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
把帆帆喂饱 把帆帆喂饱
1年前
Redis入门
Redis1、Redis概述Redis介绍Redis是一个开源的keyvalue存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset–有序集合)和
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
Redis(一) String类型操作【存字符串、存数字】
什么是redis?  redis是一个keyvalue存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Stella981 Stella981
3年前
Redis的安装配置和使用
  现在我来讲解一下Redis的安装和配置,那么什么是Redis呢?他的作用是什么呢?  redis是一个keyvalue存储系统,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset有序集合)和hash(哈希类型)。这些数据类型都支持push/
Stella981 Stella981
3年前
Spring Boot(十二):看完这篇,Redis你就入门了
一、Redis简介1、Redis(RemoteDictionaryServer远程字段服务)是一个开源的使用ANSIC语言编写、支持网络、科技与内存亦可持久化的日志型、keyvalue数据库,并提供多种语言的API。2、Redis是一个keyvalue存储系统,它支持存储的value类型相对更多,包括string、list、set
Stella981 Stella981
3年前
Redis 中文入门
1)Redis简介Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、KeyValue数据库。2)数据类型2.1.Redis的KeyRedis的key是字符串类型,但是key中不能包括边界字符,由于key不是binary
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。它通常被称为数据结