本文已参加「新人创造礼」活动,一起敞开创造之路。
⭐ 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、业务;
5、…
学习中需求用到的东西
1、官网:redis.io/;
2、中文网:www.redis.cn/
注意:Wdinows 版在 Github上下载(停更很久了!)
Redis 推荐都是在 Linux 服务器上建立的,咱们是依据Linux学习!
基础知识
Redis 默许有16个数据库;
默许运用的是第0个,能够运用 select
进行切换数据库;
127.0.0.1:6379> select 3 # 切换数据库
OK
127.0.0.1:6379[3]> dbsize # 检查数据库大小
(integer) 0
127.0.0.1:6379[3]> keys * # 检查数据库一切的key
1) "name"
铲除当前数据库 flushdb
;
铲除全部数据库的内容 FLUSHALL
;
思考:为什么 Redis 的端口是6379;
端口6379的由来;
Redis 是单线程的
理解 Redis 是很快的,官方表明,Redis 是依据内存操作,CPU 不是 Redis 性能瓶颈,Redis 的瓶颈是依据机器的内存和网络带宽,已然能够运用单线程来实现,就运用单线程了;
Redis 是 C 言语写的,官方供给的数据为 100000+ 的 QPS,彻底不比同样是运用 key-vale 的 Memecache 差;
Redis 为什么单线程还这么快?
1、误区1:高性能的服务器一定是多线程的?
2、误区2:多线程(CPU 上下文会切换)一定比单线程效率高;
先要对 CPU>内存>硬盘的速度有所了解!
核心:Redis 是将一切的数据全部放在内存中的,所以说运用单线程去操作效率便是最高的,多线程(CPU 上下文会切换:耗时的操作),关于内存体系来说,假如没有上下文切换效率便是最高的,多次读写都是在一个 CPU 上的,在内存情况下,这个便是最佳的计划!
Linux 装置
1、从官网下载装置包;
2、解压 Redis 的装置包,tar -zxvf redis-6.2.5.tar.gz
, 程序一般放在 /opt 目录下;
3、进入解压后的文件,能够看到咱们 Redis 的装备文件;
4、基本的环境装置:
yum install gcc-c++
gcc -v
make
make install
5、Redis 的默许装置路径 /usr/local/bin
6、将 Redis 装备文件,复制到咱们当前目录下;
7、Redis 默许不是后台发动的,修正装备文件!
8、发动 Redis服务;
9、运用redis-cli 进行衔接测验;
10、怎么封闭 Redis 服务呢?
Docker 装置
1、运用 docker 装置 redis:
docker pull redis
这样拉下来的镜像便是最新的,假如要指定版本,能够在后面接个版本号;
装置好之后运用 docker images
即可检查:
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 3e42dd4e79c7 7 weeks ago 117MB
2、预备 redis 的装备文件:
能够去 redis 中文官方网站 下一个装备文件,
3、装备 redis.conf 装备文件:
能够先拷贝一份,以防万一;
详细的操作参阅上边在 Linux 中进行的修正,主要装备的如下:
bind 127.0.0.1
# 注释掉这部分,使 redis 能够外部访问;daemonize no
# 用看护线程的方式发动;requirepass
# 给 redis 设置暗码;appendonly yes
# redis 耐久化,默许是 no;tcp-keepalive 300
# 防止呈现长途主机逼迫封闭了一个现有的衔接的错误,默许是300;
4、创立本地目录与 docker 进行映射:
所谓的映射,便是将 docker 中的文件挂载到本地,便利一系列的操作,这个本地方位是自定义的,因此这儿仍是挑选在 /opt
目录下,
[root@localhost ~]# mkdir /opt/redis
[root@localhost ~]# mkdir /opt/redis/data
# 把装备文件 redis.conf 拷贝到方才创立好的文件里
[root@localhost ~]# cp -p redis.conf /opt/redis/
[root@localhost ~]# cd /opt/redis/
[root@localhost redis]# ls
data redis.conf
5、发动 docker redis:
[root@localhost ~]# docker run -p 6379:6379 --name redis-sid10t -v /opt/redis/redis.conf:/etc/redis/redis.conf -v /opt/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
参数解释:
-p 6379:6379
:把容器内的6379端口映射到宿主机6379端口;-v /opt/redis/redis.conf:/etc/redis/redis.conf
:把宿主机装备好的 redis.conf 放到容器内的这个方位中;-v /opt/redis/data:/data
:把 redis 耐久化的数据在宿主机内显现,做数据备份;redis-server /etc/redis/redis.conf
:这个是关键装备,让 redis 不是无装备发动,而是依照这个 redis.conf 的装备发动;–appendonly yes
:redis 发动后数据耐久化;
6、检查是否发动成功:
[root@localhost redis]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c655b33fcff redis "docker-entrypoint.s…" 7 weeks ago Up 5 hours 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis-sid10t
7、检查 docker redis 运行日志:
[root@localhost redis]# docker logs redis-sid10t
跋文
装置好之后,就能够预备正式开端学习 redis 了!
以上便是【Redis】概述与装置的一切内容了,创造不易,多多支撑
我是,等待你的关注
系列专栏:Redis