第一课

1、redis简介

redis全称:remotedictionary server

存储系统:

1、RDBMS关系型数据库: MYSQL/ SQLSERVER

2、NOSQL非关系型数据库: REDIS/MEMCACHED/MongoDB/HBas

2、redis与memcached的区别

如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:
      1 、Redis不仅仅支持简单的k/v(key、value)类型的数据,同时还提供list,set,hash等数据结构的存储。
      2 、Redis支持数据的备份,即master-slave模式的数据备份,redis通过SENTINEL哨兵来进行主从的切换。redis在3.0 开始支持redis cluster(集群),但是可能并不完善

3、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。在Redis中,并不是所有的数据都一直存储在内存中的。这是和Memcached相比一个最大的区别(我个人是这么认为的)

4、另外:redis单线程,memcached多线程(可以使用多核cpu)

Redis组件:

1、redis-serverredis的服务端

2、redis-cliredis的客户端

3、commandlineinterface

4、redis-benchmark(压力测试工具)

5、redis-check-dump&redis-check-aof(检查redi持久化工具)

6、corrupted RDB/AOF fileutilities

3、redis 持久化

Redis只会缓存所有的key的信息,如果Redis发现内存的使用量超过了某一个阀值,将触发swap的操作,Redis根据“swappability= age*log (size_in_memory)”计算出哪些key对应的value需要swap到磁盘。然后再将这些key对应的value持久化到磁盘中,同时在内存中清除。这种特性使得Redis可以保持超过其机器本身内存大小的数据。当然,机器本身的内存必须要能够保持所有的key,毕竟这些数据是不会进行swap操作的。
      同时由于Redis将内存中的数据swap到磁盘中的时候,提供服务的主线程和进行swap操作的子线程会共享这部分内存,所以如果更新需要swap的数据,Redis将阻塞这个操作,直到子线程完成swap操作后才可以进行修改。

4、Redis 并发相关介绍

1、Million small key →stringvaluepairsuse~100MBof memory

2、Single threaded → but cpu should not to be thebottleneck

3、Averagelinuxsystemcandeliver even 500K requestpersecond(50w并发)如果较好的硬件经过测试支持百万的并发是完全没有问题的

第二课

1、Redis安装

第一步、wget http://download.redis.io/releases/redis-3.2.0.tar.gz
第二步、解压并进入源码目录,less README.md里面有安装步骤
第二步、在源码目录make,完成安装
第四步、在源码目录make test,检查安装有无问题,如果出现以下问题:
[err]: Test replication partial resync: ok psync (diskless: yes, reconnect: 1) in tests/integration/replication-psync.tcl
Expected condition '[s -1 sync_partial_ok] > 0' to be true ([s -1 sync_partial_ok] > 0)
是由于安装环境(如虚拟机)配置太低导致的,解决方式:

http://www.voidcn.com/blog/chenggong2dm/article/p-6097574.html

2、修正目录结构

第一步、整理Redis的配置文件,在源码目录下
[root@localhost redis]#    mkdir conf
[root@localhost redis]#    mv redis.conf conf/
[root@localhost redis]#    mv sentinel.conf conf/
第二步、整理不常用文件,在源码目录下
[root@localhost redis]#    mkdir others 
[root@localhost redis]#    mv 00-RELEASENOTES BUGS CONTRIBUTING COPYING INSTALL Makefile MANIFESTO README.md runtest runtest-cluster runtest-sentinel others/
第三步、整理可执行文件,在源码目录下
[root@localhost redis]#  mkdir bin
[root@localhost redis]#  cd src 
[root@localhost src]#    mv redis-server redis-cli redis-sentinel ../bin
 

第三课

1、修改redis配置文件redis.conf

1、修改Redis服务的监听地址

默认是bind 127.0.0.1——>应该修改为bind 本机IP

2、开启保护模式

默认是protected-mode yes——>保持默认就可以了

3、Redis服务的监听端口

默认是port 6379——>保持默认就可以了

4、 tcp的三次握手进行中accept queue队列的Send-Q的最大值

默认是tcp-backlog 511——>保持默认就可以了

5、以守护进程(后台daemon)的方式运行redis

默认是daemonize no——>应该修改为daemonize yes

6、指定redis的日志文件以及写日志的级别

默认是logfile ""——>应该修改为logfile "自定义目录"

默认是loglevel notice——>保持默认就可以了

7、redis最多支持多少个数据库

默认是databases 16——>保持默认就可以了

8、设置RDB的持久化方式→Snapshotting快照

9、指定RDB持久化文件

默认是 dbfilename dump.rdb      RDB持久化的文件名,保持默认就可

10、设置AOF的持久化方式→类似于mysql的二进制日志

默认是 appendonly no                       表示不启用AOF方式

appendfilename "appendonly.aof"      AOF持久化的文件名

appendfsync everysec               表示每秒记录一次持久化文件

修改为 appendonly yes                      表示启用AOF方式

剩下俩个保持默认就可以了

11、指定两种持久化文件的生成路径:

默认是 dir ./                    ——>  修改为dir 指定的路径

12、为redis设置密码→客户端连接使用

默认是 #requirepass foobared     ——>  修改为requirepass redis

13、设置redis主从→以上都是redis的单点设置

redis主服务不用做任何配置,只需要在从服务器的redis.conf上指定master的ip与端口后,启动从库就可以自动同步。默认是#slaveof<masterip><master port> ——> 修改为slaveof 主服务器IP 主服务器端口。另外如果主库设置了密码,从库需要配置如下masterauth<master-password>。

2、启动Redis

官网给出的启动命令:If you want to provide your redis.conf, you have to run it using anadditional parameter (the path of the configuration file):

% cd src

% ./redis-server /path/to/redis.conf

由于我们之前更改了目录结构,所以启动方式如下:

3、服务器上登录Redis

第四课

1、对Key-Value的增删改查(5种数据类型)

0)、对数据库的操作—help @connection

0)、对redis服务器的操作—help @server

1)、对字符串的操作—help @STRING

在同一个数据库内,key是不能重复的,我们平时把这个数据库叫名称空间(Redis默认有16个名称空间),我们平时使用不同的名称空间,在不同的名称空间里,键值是可以重复的。

2)、对哈希表的操作—help @Hash

3)、对链表的操作—help @LIST

4)、对无序集合的操作—help @set

5)、对有序集合的操作—help @sorted_set

2、如何设置一个Key-Value对的生效时间

3、如何设置Redis的持久化

设置RDB的持久化方式→Snapshotting快照

4、Redis对事务的支持

事务:一组相关的操作是原子性的,要么都执行,要么都不执行;一组事务,要么成功,要么撤回。redis通过multi、exec等命令实现事务功能。

第五课

1、Redis的复制/主从

一个master可以有多个slave,一个slave还可以再有slave,所以支持链式复制。Master以非阻塞方式同步数据至salve,master可以同时处理多个slave的操作。

第一步、从master上拷贝redis到slave上

scp -r -P 20755 redis root@10.0.140.85:/app/zpy

mkdir -p /data/zpy/redis/

第二步、配置slave服务器(一般3步)

创建redis的日志文件

在redis.conf里修改bind语句

在redis.conf里修改slaveof语句(有2种方式)和 masterauth语句

第三步、主从分别启动redis

启动指令都是{redis安装目录}/redis-server ../conf/redis.conf

第四步、测试主从设置

2、REDIS安全简介

1)、禁止一些高危命令

修改 redis.conf 文件,添加以下语句以禁用远程修改 DB 文件地址

rename-commandFLUSHALL ""

rename-commandCONFIG   ""

rename-commandEVAL     ""

2)、以低权限运行 Redis 服务

为 Redis 服务创建单独的用户和家目录,并且禁止登陆/sbin/nologin

3)、为 Redis 添加密码验证

修改 redis.conf 文件,添加requirepass 自定义密码

4)、禁止外网访问 Redis

修改 redis.conf 文件,修改bind 10.0.140.84,使得 Redis 服务只在当前主机可用

redis课件总结.相关推荐

  1. redis课件DIY

    Redis课件DIY 2017.8.31 一. redis简介..................................................................... ...

  2. day11【过渡】SpringBoot

    day11[过渡]SpringBoot 1.HelloWorld(Maven版本) 1.1.创建Maven工程 新建Maven工程 因为SpringBoot自带嵌入式Tomcat服务器,我们打包为ja ...

  3. redis泡菜5_《redis讲解》PPT课件.pptx

    redis讲解 王江财 目 录 1 2 3 4 5 6 redis简介 redis数据类型 主从复制 持久化 redis集群 jedis及集群应用 7 发布与订阅功能 $$1redis简介 一.什么是 ...

  4. java课件:基于springboot智慧校园后勤管理系统(springboot+vue+mysql+redis) 1017

    项目描述 基于springboot智慧校园后勤管理系统, 包括管理员端,业务员端. 管理员主要功能:用户管理,角色管理,学生管理:职工管理:案件管理 等; 业务员主要功能:学生管理:职工管理:案件管理 ...

  5. 尚硅谷周阳老师-redis脑图课件

    因为脑图原件是.mmap格式,使用wps和xmind打开都会有格式不兼容的问题,这里我们可以使用mindmanager试用版存为html5交互式格式, 提供在线阅读.因为阿里云学生服务器带宽有限,这里 ...

  6. redis日志_「漫画」谈谈Redis持久化

    原创:享学课堂讲师 转载请声明出处! RDB RDB 是 Redis 默认的持久化方案.在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中.即在指定目录下生成一个dump.rdb ...

  7. Mysql主从和redis集群哪个好_Redis的三种模式:主从、哨兵、集群

    前言 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.普遍用于目前主流的分布式架构系统中,关于redis的详细 ...

  8. redis 登录_Redis集群架构+Dubbo开发框架+SSO单点登录+Nginx+ZooKeeper

    Redis集群架构 [课程介绍] Redis是现在使用为广泛的NoSQL数据库技术,其自身不仅拥有着良好的操作性能,也被广泛的应用于各种集群架构的数据整合处理之中,而本课程将通过Redis的核心作用, ...

  9. docker 虚拟机搭建mongodb一主一从一复制_云计算学习路线图素材课件:Docker容器应用场景分析...

    Docker容器是一个开源的应用容器引擎,它能够自动执行重复性任务,例如搭建和配置开发环境,用户可以方便地创建和使用容器,还可以进行版本管理.复制.分享.修改.有很多初学云计算的同学不清楚Docker ...

最新文章

  1. SSAS使用时间智能解决本年累计、同比、环比【转载】
  2. mysql延时优化教程_Slave延迟很大的优化方法总结(MySQL优化)
  3. 论坛服务软件Discux_X3.4的部署
  4. flex java 全局拦截_flex + java 过滤敏感词
  5. Codeforces Round #396 (Div. 2) E. Mahmoud and a xor trip 二进制拆位+树型dp
  6. 文件下载乱码问题分析与解决
  7. 洛谷P3607:Subsequence Reversal P(区间dp)
  8. UVA----10082 WERTYU【字符串】
  9. 高学历就一定代表着高收入么?数据分析来为你揭晓
  10. 解决Hadoop运行时的WARN util. NativeCodeLoader: Unable to load native-hadoop library for your platform
  11. 标准燃料计算机准,油表显示的油耗真的准确吗?教你最准确的油耗计算方法
  12. 优先队列之Leetcode 23合并K个有序链表
  13. 重装系统解决:CUPS服务未启动,不能管理打印机
  14. 郝斌老师c语言笔记 TXT,郝斌老师c语言笔记
  15. 人脸识别一体机解决方案
  16. [实战]黑帽SEO的RayFile排名做法
  17. 超详细傻瓜iPhone自定义来电铃声教程
  18. 数据库练习题(比较基础)
  19. imx6上调用 vpu
  20. 如何手机访问电脑服务器上的网页?

热门文章

  1. idea 调试 java,将Intellij-IDEA调试器附加到正在运行的java进程
  2. android的nfc卡模拟开发
  3. Jenkins 进阶篇 - 单元测试覆盖率
  4. 2022年全球及中国X射线源行业应用现状与十四五需求前景预测报告
  5. ymodem android,【安卓相关】蓝牙基于Ymodem协议发送bin文件,对硬件设备进行升级。...
  6. 今天收到《新程序员》杂志,忽然发现在CSDN账号注册已经21年了!
  7. python金融量化 pdf_python量化交易pdf,Python和金融分析的关系?量化交易内容深度?...
  8. 班主任工作考核 : 2023年班主任工作考核
  9. C语言程序——函数(2)
  10. matlab 华图技巧,华图教育——图形推理技巧