redis总结1-Redis简介、安装、集群
来源:互联网 发布:多目标 优化 编辑:程序博客网 时间:2024/05/19 19:44
redis总结1-Redis简介、安装、集群
redis总结2-Redis六种数据类型命令总结(附命令实例)
redis总结3-持久化rdb,aof,运维命令,Sentinel监控
redis总结4-KEY设计技巧,常见问题
一.简介
1.1 NoSQL简介
1.1.1 定义
NoSQL(Not Only SQL),意为反SQL运动,是一项合新的数据库革命性运动,非关系型的数据库.
NoSQL是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说遵循SQL标准(insert, delete,select)、ACID属性(事务处理)、表结构等等,这类数据库主要有以下特点:非关系型的、分布式的、开源的、水平可扩展的.
支持事务比较简单(不能满足现在的需求)
1.1.2 NoSQL特点
1.处理超大量的数据
2.运行在便宜的PC服务器集群上
3.击碎了性能瓶劲(性能高,无须优化)
1.1.3 NoSQL适用场景
1.对数据高并发读写(传统数据库上万次的写,硬盘I/O就会有问题)
2.对海量数据的高效率存储和访问(fielfeed:一个月有2.5亿用户动态)
3.对数据的高可扩展性和高可用性(nosql做分布式,很简单。没有固定的表结构,迭代开发时)
1.2 Redis简介
1.2.1 简介
redis是开源,BSD许可,高级的key-value存储系统.
可以用来存储字符串,哈希结构,链表,集合,因此,常用来提供数据结构服务.
为了保证效率,数据都是缓存在内存中,它也可以(方式一)周期性的把更新的数据写入磁盘或者(方式二)把修改操作写入追加的记录文件(相当于log文件)。
Redis提供的API语言包括:C、C++、C#、Clojure、Common Lisp、Erlang、Haskell、Java、Javascript、Lua、Objective-C、Perl、PHP、Python、Ruby Scala、Go、Tcl
1.2.2 Redis具体适用场合
1.取最新N个数据的操作
2.排行榜应用,取TOP N操作
3.需要精确设定过期时间的应用
4.计数器应用
5.Uniq操作,获取某段时间所有数据排重值
6.实时系统,反垃圾系统
7.Pub/Sub构建实时消息系统
8.构建队列系统
9.缓存
1.2.3 redis和memcached相比
1: redis可以用来做存储(storge), 而memccached是用来做缓存(cache)
这个特点主要因为其有”持久化”的功能.
2: 存储的数据有”结构”,对于memcached来说,存储的数据,只有1种类型–”字符串”,
而redis则可以存储字符串,链表,哈希结构,集合,有序集合.
1.2.4 redis,mysql,mongodb对比
二.安装
官网地址: https://redis.io/
2.1 单机安装
2.1.1 更新gcc和tcl
[root@localhost ~]# yum install gcc tcl
Gcc参考文章
Tcl语言参考文章
注意:如果操作时请确认上网权限.如果需要登录,则用图形界面登录后再操作.
如果报错:” Loaded plugins: fastestmirror, refresh-packagekit, security No such command:”
参考文章
[root@pc]# vi /etc/yum/pluginconf.d/fastestmirror.conf [main] enabled=0 //把1改为0 verbose=0 socket_timeout=3 hostfilepath=/var/cache/yum/timedhosts.txt maxhostfileage=10 maxthreads=15 #exclude=.gov, facebook#vi /etc/yum.conf[main]cachedir=/var/cache/yum/$basearch/$releaseverkeepcache=0debuglevel=2logfile=/var/log/yum.logexactarch=1obsoletes=1gpgcheck=1plugins=1 #将plugins的值修改为0installonly_limit=5
2.1.2 下载安装包,上传文件,解压文件
redis官网:https://redis.io/
Redis 4.0.1下载地址:http://download.redis.io/releases/redis-4.0.1.tar.gz
[root@localhost ~]# tar -zxvf redis-3.0.7.tar.gz
2.1.3 创建安装目录,准备将redis安装到该目录下
[root@localhost ~]# mkdir /usr/local/redis
2.1.4 进入到第2步的解压后的redis文件夹中
2.1.4.1 进入目录
2.1.4.2 执行安装语句
[root@localhost ~]# make PREFIX=/usr/local/redis install
2.1.5 复制源文件中的配置文件
2.1.5.1 创建 conf文件夹
[root@localhost ~]# mkdir conf
创建之后:
2.1.5.2 复制配置文件
[root@localhost redis]# cp /usr/local/src/redis-3.0.7/redis.conf /usr/local/redis/conf/6379.conf
2.1.5.3 修改配置文件
1)将daemonize的值修改为yes
[:set number 显示行数]
2)pidfile的值修改为 /var/run/redis_6379.pid
配置详解
2.1.6 启动服务
2.1.6.1 进入文件目录
[root@localhost bin]# cd /usr/local/redis/bin[root@localhost bin]# pwd/usr/local/redis/bin[root@localhost bin]# ./redis-server
2.1.6.2 测试使用
2.2 设值环境变量及服务
以上安装完之后通过命令启动服务之后,需要新开一个窗口来进行操作,没有将服务设值为后台服务.也没有配置环境变量.也没有设值随机启动.下步操作实现该功能.
2.2.1 配置环境变量
1)编辑
[root@localhost ~]# vi /etc/profile
2)在后面增加:
#Redisexport PATH=$PATH:/usr/local/redis/bin保存退出:
3)生效
[root@localhost bin]# source /etc/profile
2.2.2 配置redis为服务
1) 默认启动脚本在 /usr/local/src/redis-3.0.7/utils/redis_init_script
2) 将启动脚本copy到/etc/rc.d/init.d/目录下,并命名为redis
[root@localhost bin]# cp /usr/local/src/redis-3.0.7/utils/redis_init_script /etc/rc.d/init.d/redis
3) 修改配置
需要修改的配置A. 添加注册chkconfig在注释的最后增加:#chkconfig: 2345 80 90如果不添加启动会报: :service redis does not support chkconfigB. EXEC修改前: EXEC=/usr/local/bin/redis-server修改为: EXEC=/usr/local/redis/bin/redis-serverC. CLIEXEC修改前: CLIEXEC=/usr/local/bin/redis-cli修改为 CLIEXEC=/usr/local/redis/bin/redis-cliD. CONF修改前: CONF="/etc/redis/${REDISPORT}.conf"修改后: CONF="/usr/local/redis/conf/${REDISPORT}.conf"E. start 修改前: $EXEC $CONF 修改后: $EXEC $CONF &
修改前截图:
修改后截图:
(vi可以通过 通过 :set nu 来显示行数)
2.2.3 将Redis注册为服务
[root@localhost utils]# chkconfig --add redis
2.2.4 配置防火墙
1) 编辑配置
[root@localhost utils]# vi /etc/sysconfig/iptables
2) 在以前配置中增加配置
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
此处一定要注意.添加在22后面.不要放在commit的前面.
3) 配置生效
[root@localhost utils]# service iptables restart
2.2.5 配置6379.conf
1) 修改daemonize 的值为yes(修改前为no) :
daemoniz yes
2) 修改pidfile为 /var/run/redis_6379.pid
pidfile /var/run/redis_6379.pid
2.2.6 测试服务
1) 启动 [root@localhost ~]#service redis start
2) 停止 [root@localhost ~]#service redis stop
2.2.7 服务随机启动
1) 配置启动服务
[root@localhost utils]# chkconfig redis on
2) 查看配置服务
[root@localhost utils]# chkconfig –list redis
3) 如果需要关闭启动服务
[root@localhost utils]# chkconfig redis off
4) 重启机器测试
Reboot
2.2.8 使用工具查看连接redis
2.3 安装后的目录结构:
后台运行配置: conf中的daemonize yes
2.4 配置详解
2.5 关于rdp,和aof
2.5 集群
2.5.1 集群作用
- 主从备份,防止主机宕机,
- 读写分离,分担master的任务
- 任务分离,如由从服务器担任备份和计算工作
2.5.2 集群的两种方式及通信过程
集群的两种方式如上图,第二种集群方式更好,因master宕机后,可以直接切换到slave1
主动同步过程:
1) slave启动后发现master主服务,自动连接到master,
2) 然后就开始同步,master开始dump出rdb到,然后salve同步到rdb之后,直接放到slave内存中.
3) 在同步的过程中,产生的新的更新在aof,等rdb同步完成后,然后同步aof到slave中,
4) 然后master再有改变,则通过replicationFeedSavles同步到slave中.
2.5.2 redis集群配置
1) 6379为主,复制配置文件,6380,6381 为从
2) 6380,6381分别修改pidfile为6380,6381,port修改为6380,6381
3) 6379关rdb,开aof,6380开启rdb,不开aof,6381不开启rdb,不开aof
4) 申明6380,6381的为从服务,从属的主服务地址,端口
5) 6379主服务可以配置密码,从服务6380,6381配置对应的主服务的密码
Master配置:
1:关闭rdb快照(备份工作交给slave)
2:可以开启aofslave配置:
1: 声明slave-of
2: 配置密码[如果master有密码]
3: [某1个]slave打开 rdb快照功能
4: 配置是否只读[slave-read-only]缺陷:
每次salave断开后,(无论是主动断开,还是网络故障) ,再连接master
都要master全部dump出来rdb,再aof,即同步的过程都要重新执行1遍.
所以要记住—多台slave不要一下都启动起来,否则master可能IO剧增
配置的图示如下:
redis-集群-6379-1-关闭rdb:
redis-集群-6379-2-设置密码:
redis-集群-6380-1-修改pid和port:
redis-集群-6380-2-开启rdb:
redis-集群-6380-3-开启slaveof
redis-集群-6380-5-设置访问master的密码:
redis-集群-6381-1-pid和port:
redis-集群-6381-2-关闭aof:
redis-集群-6381-2-关闭rdb:
redis-集群-6381-4-设置访问master的密码:
6379.conf
6380.conf
6381.conf
- redis总结1-Redis简介、安装、集群
- redis简介及安装(集群)
- Redis简介、Redis安装
- Redis集群使用总结1
- Redis 集群简介
- redis-集群安装(1)
- Redis集群_1.redis安装
- Redis集群Redis-Cluster安装
- 1、Redis简介与安装
- Redis主从集群以及sentinel集群安装和配置总结
- redis安装,主从集群
- Redis集群安装部署
- centOs 安装redis,集群
- redis集群安装问题
- redis-3.0集群安装
- Redis入门,集群安装
- redis 集群安装配置
- redis集群安装提高
- 翻纸牌游戏 HDU
- MRI数据格式转换——基于Nipype/FreeSurfer
- 自定义WinForm控件无法拖动到窗口
- 服务器常用的状态码及其对应的含义
- Linux-Ubuntu入门笔记
- redis总结1-Redis简介、安装、集群
- 为自定View添加相应属性,在XML可以直接使用
- Java 多项式求值
- python os.stat() 和 stat模块详解
- node.js学习笔记2——querystring (查询字符串,参数处理)
- Git高频命令(长期更新)
- C语言指针学习笔记
- 数据结构编程笔记十七:第六章 树和二叉树 赫夫曼树的实现
- 史上最科学!Swift 3 UITableView最佳实践 XIB极速实现UITableViewCell,UITableViewHeaderFooterView