Redis学习Redis入门概述

Posted Pycro

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis学习Redis入门概述相关的知识,希望对你有一定的参考价值。

Redis是什么

Redis:REmote Dictionary Server(远程字典服务器)

官网介绍:The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.(被数百万开发人员用作数据库、缓存、流媒体引擎和消息代理的开源内存数据存储。)

Redis能干什么

主流功能与应用

  1. 分布式缓存,挡在mysql数据库之前的带刀侍卫
  • 与传统数据库(MySQL)的关系

    • Redis是key-value数据库(NoSQL的一种),MySQL是关系数据库

    • Redis数据操作主要在内存,而MySQL主要在磁盘

    • Reids在某些场景使用中要明显优于MySQL,比如计数器、排行榜等方面(实时更新)

    • Redis通常用于一些特定场景,需要与MySQL一起配合使用,二者并不是相互替换和竞争关系,而是共用和配合关系

  1. 内存存储和持久化(RDB+AOF)

redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务

  1. 高可用架构配置

单机

主从

哨兵

集群

  1. 缓存穿透、击穿、雪崩

  2. 分布式锁

  3. 队列

  4. 排行榜+点赞

总体功能概述图

优势

  • 性能极高 —— Redis能读的速度是110000次/秒,写的速度是81000次/秒

  • Redis数据类型丰富,不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储

  • Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用

  • Redis支持数据的备份,即master-slave模式的数据备份

小结

Redis是一种Key-Value类型的缓存数据库

Redis如何下载

官网地址

英文

中文

中文文档

下载安装包

下载地址

其他文档资料

Redis源码地址

Redis在线测试

Redis命令参考

Redis7新特性浅谈

时间推移,版本升级

Redis版本迭代推演介绍

几个里程碑式的重要版本

命名规则

Redis从发布至今,已经有十余年的时光了,一直遵循着自己的命名规则:

版本号第二位如果是奇数,则为非稳定版本如2.X、2.9、3.1

版本号第二位如果是偶数,则为稳定版本如2.6、2.8、3.0、3.2

当前奇数版本就是下一个稳定版本的开发版本,如2.9版本是3.0版本的开发版本

Redis7部分新特性概览

Redis概述以及启动Redis并进入Redis

活着的意义?
追求幸福(帮助他人,感恩之心),探索未知(努力的学习,不要这个社会抛弃)

看的狂神的视频课👉【狂神说Java】Redis最新超详细版教程通俗易懂,笔记自用。

Redis入门

概述

Redis 是什么?

👉Redis百度百科
Redis(Remote Dictionary Server )即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
免费和开源!
是当下最热门的 NoSQL 技术之一,也被人们称之为结构化数据库!

Redis 能干嘛?

1、内存存储、持久化,内存中是断电即失、所以说持久化很重要(持久化的两种机制:rdb、aof)
2、效率高,可以用于高速缓存
3、发布订阅系统
4、地图信息分析
5、计时器、计数器(浏览量!)
6、…

特性

1、多样的数据类型
2、持久化
3、集群
4、事务

学习中需要用到的东西

👉官网
👉中文网

Redis推荐都是在Linux服务器上搭建的,基于Linux学习!

之前已经在购买的阿里云服务器上使用docker搭建好redis并且已经启动了。
(docker部署redis的教程自己去搜,有很多~~~~~~)

查看当前环境版本:

redis.conf:

👉在Docker中启动Redis并进入Redis

进入Redis终端

先查看容器id:

docker exec -it 容器id redis-cli

redis-cli表示运行一个redis客户端。

关闭退出:

127.0.0.1:6379> select 3  #切换数据库3
OK
127.0.0.1:6379[3]> DBSIZE  #查看DB大小
(integer) 0
127.0.0.1:6379> select 3
OK
127.0.0.1:6379[3]> DBSIZE
(integer) 0
127.0.0.1:6379[3]> set name wanzi
OK
127.0.0.1:6379[3]> DBSIZE
(integer) 1
127.0.0.1:6379[3]> keys *  #查看数据库所有的key
1) "name"

清除当前数据库 flushdb
清除全部数据库的内容 FLUSHALL

127.0.0.1:6379[3]> flushdb
OK
127.0.0.1:6379[3]> keys *
(empty array)
127.0.0.1:6379[3]> select 0
OK
127.0.0.1:6379> keys *
1) "msg"
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> keys *
(empty array)

Redis 是单线程的!

Redis是很快的,官方表示,Redis是基于内存操作,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程了!所有就使用了单线程了!
Redis 是C 语言写的,官方提供的数据为 100000+ 的QPS,完全不比同样是使用 key-vale的Memecache差!

Redis 为什么单线程还这么快?

1、误区1:高性能的服务器一定是多线程的?
2、误区2:多线程(CPU上下文会切换!)一定比单线程效率高!
先去对CPU>内存>硬盘的速度要有所了解!
核心: redis 是将所有的数据全部放在内存中的,所以说使用单线程去操作效率就是最高的,多线程(CPU上下文会切换:耗时的操作!!!),对于内存系统来说,如果没有上下文切换,效率就是最高的!多次读写都是在一个CPU上的,在内存情况下,这个就是最佳的方案!

以上是关于Redis学习Redis入门概述的主要内容,如果未能解决你的问题,请参考以下文章

Redis学习一:Nosql入门和概述

Redis学习二:Redis入门介绍

Python全栈100天学习笔记Day39 NoSQL入门及Redis概述

Python全栈100天学习笔记Day39 NoSQL入门及Redis概述

Redis学习与总结

Redis入门概述