redis课件总结.
第一课
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课件总结.相关推荐
- redis课件DIY
Redis课件DIY 2017.8.31 一. redis简介..................................................................... ...
- day11【过渡】SpringBoot
day11[过渡]SpringBoot 1.HelloWorld(Maven版本) 1.1.创建Maven工程 新建Maven工程 因为SpringBoot自带嵌入式Tomcat服务器,我们打包为ja ...
- redis泡菜5_《redis讲解》PPT课件.pptx
redis讲解 王江财 目 录 1 2 3 4 5 6 redis简介 redis数据类型 主从复制 持久化 redis集群 jedis及集群应用 7 发布与订阅功能 $$1redis简介 一.什么是 ...
- java课件:基于springboot智慧校园后勤管理系统(springboot+vue+mysql+redis) 1017
项目描述 基于springboot智慧校园后勤管理系统, 包括管理员端,业务员端. 管理员主要功能:用户管理,角色管理,学生管理:职工管理:案件管理 等; 业务员主要功能:学生管理:职工管理:案件管理 ...
- 尚硅谷周阳老师-redis脑图课件
因为脑图原件是.mmap格式,使用wps和xmind打开都会有格式不兼容的问题,这里我们可以使用mindmanager试用版存为html5交互式格式, 提供在线阅读.因为阿里云学生服务器带宽有限,这里 ...
- redis日志_「漫画」谈谈Redis持久化
原创:享学课堂讲师 转载请声明出处! RDB RDB 是 Redis 默认的持久化方案.在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中.即在指定目录下生成一个dump.rdb ...
- Mysql主从和redis集群哪个好_Redis的三种模式:主从、哨兵、集群
前言 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.普遍用于目前主流的分布式架构系统中,关于redis的详细 ...
- redis 登录_Redis集群架构+Dubbo开发框架+SSO单点登录+Nginx+ZooKeeper
Redis集群架构 [课程介绍] Redis是现在使用为广泛的NoSQL数据库技术,其自身不仅拥有着良好的操作性能,也被广泛的应用于各种集群架构的数据整合处理之中,而本课程将通过Redis的核心作用, ...
- docker 虚拟机搭建mongodb一主一从一复制_云计算学习路线图素材课件:Docker容器应用场景分析...
Docker容器是一个开源的应用容器引擎,它能够自动执行重复性任务,例如搭建和配置开发环境,用户可以方便地创建和使用容器,还可以进行版本管理.复制.分享.修改.有很多初学云计算的同学不清楚Docker ...
最新文章
- SSAS使用时间智能解决本年累计、同比、环比【转载】
- mysql延时优化教程_Slave延迟很大的优化方法总结(MySQL优化)
- 论坛服务软件Discux_X3.4的部署
- flex java 全局拦截_flex + java 过滤敏感词
- Codeforces Round #396 (Div. 2) E. Mahmoud and a xor trip 二进制拆位+树型dp
- 文件下载乱码问题分析与解决
- 洛谷P3607:Subsequence Reversal P(区间dp)
- UVA----10082 WERTYU【字符串】
- 高学历就一定代表着高收入么?数据分析来为你揭晓
- 解决Hadoop运行时的WARN util. NativeCodeLoader: Unable to load native-hadoop library for your platform
- 标准燃料计算机准,油表显示的油耗真的准确吗?教你最准确的油耗计算方法
- 优先队列之Leetcode 23合并K个有序链表
- 重装系统解决:CUPS服务未启动,不能管理打印机
- 郝斌老师c语言笔记 TXT,郝斌老师c语言笔记
- 人脸识别一体机解决方案
- [实战]黑帽SEO的RayFile排名做法
- 超详细傻瓜iPhone自定义来电铃声教程
- 数据库练习题(比较基础)
- imx6上调用 vpu
- 如何手机访问电脑服务器上的网页?
热门文章
- idea 调试 java,将Intellij-IDEA调试器附加到正在运行的java进程
- android的nfc卡模拟开发
- Jenkins 进阶篇 - 单元测试覆盖率
- 2022年全球及中国X射线源行业应用现状与十四五需求前景预测报告
- ymodem android,【安卓相关】蓝牙基于Ymodem协议发送bin文件,对硬件设备进行升级。...
- 今天收到《新程序员》杂志,忽然发现在CSDN账号注册已经21年了!
- python金融量化 pdf_python量化交易pdf,Python和金融分析的关系?量化交易内容深度?...
- 班主任工作考核 : 2023年班主任工作考核
- C语言程序——函数(2)
- matlab 华图技巧,华图教育——图形推理技巧