redis 安装配置学习笔记

//wget http://download.redis.io/releases/redis-2.8.17.tar.gz

下载最新版本

wget http://download.redis.io/redis-stable.tar.gz

首先必须要有 gcc 与 make

apt-get install gcc

apt-get install make

1、解压

root@localhost:~# tar -xvf redis-stable.tar.gz

2、测试

root@localhost:~/redis-stable# ./runtest

You need tcl 8.5 or newer in order to run the Redis test

提示需要安装tcl

make完成后,在原src目录下,会生成出六个exe(可执行程序),服务端只需要redis-server.exe即可

3、运行redis

后台方式启动redis

./redis-server &

启动redis客户端链接

./redis-cli

输入ping 返回pong 即为安装成功

扩展知识:

redis-cli用法:redis-cli [OPTIONS] [cmd [arg [arg ...]]]

-h <主机ip>,默认是127.0.0.1

-p <端口>,默认是6379

-a <密码>,如果redis加锁,需要传递密码

--help,显示帮助信息

如:redis-cli -h 192.168.1.103 -p 6379

考虑到redis是单线程工作,因此一般是一台电脑上,启动多个redis实例。

启动方式二

使用配置文件启动

./redis-server redis.conf &

配置示例在 src目录的父级目录里有。也可以进行查找

find / -name redis.conf

4、redis主从配置

Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。

1).master可以有多个slave

2).除了多个slave连到相同的master外,slave也可以连接其他slave形成图状结构

3).主从复制不会阻塞master。也就是说当一个或多个slave与master进行初次同步数据时,master可以继续处理client发来的请求。相反slave在初次同步数据时则会阻塞不能处理client的请求。

4).主从复制可以用来提高系统的可伸缩性,我们可以用多个slave 专门用于client的读请求,比如sort操作可以使用slave来处理。也可以用来做简单的数据冗余

5).可以在master禁用数据持久化,只需要注释掉master 配置文件中的所有save配置,然后只在slave上配置数据持久化。

参考文档:http://blog.csdn.net/done58/article/details/50997817

环境描述:
主redis:127.0.0.1  6379
从redis:127.0.0.1  6380

主配置文件:redis.conf (不用更新,重点关注下面两个参数)

port 6379

pidfile /var/run/redis_6379.pid

从配置文件 redis2.conf (需要更改下面的参数)

port 6380

pidfile /var/run/redis_6380.pid

slaveof 
localhost 6379

先启动主 再启动从 。

redis 主从默认是读写分离。主为读写,从为读。

主从复制过程:

1):当一个从数据库启动时,会向主数据库发送sync命令,

2):主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来

3):当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。

4):从数据库收到后,会载入快照文件并执行收到的缓存的命令。

5、默认是读写分离的

6、redis 主从切换

1)停止主节点

2)切换从节点为主节点

./redis-cli -p 6380 slaveof NO ONE

3)测试从节点是否可读写

4)当主节点恢复工作后,要及时更新从节点,设置为主节点的从节点。

7、redis数据保存

1、快照(snapshots)

缺省情况情况下,Redis把数据快照存放在磁盘上的二进制文件中,文件名为dump.rdb。你可以配置Redis的持久化策略,例如数据集中每N秒钟有超过M次更新,就将数据写入磁盘;或者你可以手工调用命令SAVE或BGSAVE。

工作原理

Redis forks.

子进程开始将数据写到临时RDB文件中。

当子进程完成写RDB文件,用新文件替换老文件。

这种方式可以使Redis使用copy-on-write技术。

相关参数

save 900 1

save 300 10

save 60 10000

保存的目录

dir ./

示例:

命令

save 进行保存

scp 复制到另外一台机器的存储目录,而后重新启动那台机器,就可以看到数据复制了。

scp
dump.rdb root@192.168.0.149:/usr/local/redis/bin/
root@192.168.0.149's password: 
dump.rdb

8、redis集群 (3.0版本以后实现的)

(个人理解:把各redis 组成一个圆,每个圆负责一部分hash槽。圆中的各节点不复制数据。 圆中的各节点均提供一个主从备份实现高可用。)

3.0之后的功能,至少需要3(Master)+3(Slave)才能建立集群,是无中心的分布式存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用、可扩展等问题。

Redis集群提供了以下两个好处

1、将数据自动切分(split)到多个节点

2、当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。

一个 redis 集群包含 16384 个哈希槽(hash
slot),数据库中的每个数据都属于这16384个哈希槽中的一个。集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽。集群中的每一个节点负责处理一部分哈希槽。

集群中的主从复制

集群中的每个节点都有1个至N个复制品,其中一个为主节点,其余的为从节点,如果主节点下线了,集群就会把这个主节点的一个从节点设置为新的主节点,继续工作。这样集群就不会因为一个主节点的下线而无法正常工作

注意:

1、如果某一个主节点和他所有的从节点都下线的话,redis集群就会停止工作了。redis集群不保证数据的强一致性,在特定的情况下,redis集群会丢失已经被执行过的写命令。

2、使用异步复制(asynchronous replication)是redis 集群可能会丢失写命令的其中一个原因,有时候由于网络原因,如果网络断开时间太长,redis集群就会启用新的主节点,之前发给主节点的数据就会丢失。

集群什么时候会挂掉(集群是多个master组成的圆,各master有多个salve)

a:如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成进群的slot映射[0-16383]不完成时进入fail状态.

b:如果进群超过半数以上master挂掉,无论是否有slave集群进入fail状态

redis 集群实战参数地址:http://blog.csdn.net/myrainblues/article/details/25881535/

9、redis监控

http://blog.csdn.net/u011204847/article/details/51307044

redis 安装配置学习笔记的更多相关文章

  1. Hive0.11安装配置学习笔记

    转:http://springsfeng.iteye.com/blog/1734517 1 . 首先请安装好MySQL并修改root账户密码,使用root账户执行下面命令:  su - root    ...

  2. Chapter 2. OpenSSL的安装和配置学习笔记

    Chapter 2. OpenSSL的安装和配置学习笔记 2.1 在linux上面安装OpenSSL我还是做点No paper事情比较在行,正好和老师的课程接轨一下.以前尝试过在Windows上面安装 ...

  3. Android安装器学习笔记(一)

    Android安装器学习笔记(一) 一.Android应用的四种安装方式: 1.通过系统应用PackageInstaller.apk进行安装,安装过程中会让用户确认 2.系统程序安装:在开机的时候自动 ...

  4. Redis集群学习笔记

    Redis集群学习笔记 前言 最近有个需求,就是将一个Redis集群中数据转移到某个单机Redis上. 迁移Redis数据的话,如果是单机Redis,有两种方式: a. 执行redis-cli shu ...

  5. 【Redis】命令学习笔记——键(key)(20个超全字典版)

    安装完redis和redis-desktop-manager后,开始学习命令啦!本篇基于redis 4.0.11版本,从对键(key)开始挖坑! 准备工作,使用db1(默认db0,由于之前练习用db0 ...

  6. centos6 安装配置ss笔记

    2018-05-17 centos6 安装配置ss笔记 操作环境:Centos 6 x86_64 bbr 服务器地址:美国 1.准备VPS 在https://www.bwh1.net可购买,购买时已默 ...

  7. Linux中redis安装配置及使用详解

    Linux中redis安装配置及使用详解 一. Redis基本知识 1.Redis 的数据类型 字符串 , 列表 (lists) , 集合 (sets) , 有序集合 (sorts sets) , 哈 ...

  8. 【Redis】命令学习笔记——列表(list)+集合(set)+有序集合(sorted set)(17+15+20个超全字典版)

    本篇基于redis 4.0.11版本,学习列表(list)和集合(set)和有序集合(sorted set)相关命令. 列表按照插入顺序排序,可重复,可以添加一个元素到列表的头部(左边)或者尾部(右边 ...

  9. 【Redis】命令学习笔记——哈希(hash)(15个超全字典版)

    本篇基于redis 4.0.11版本,学习哈希(hash)相关命令. hash 是一个string类型的field和value的映射表,特别适合用于存储对象. 序号 命令 描述 实例 返回 HSET ...

随机推荐

  1. fastJson设置接口只接受json格式数据

    spring-mvc/servlet.xml <mvc:annotation-driven> <mvc:message-converters register-defaults=&q ...

  2. 雷林鹏分享:jQuery EasyUI 数据网格 - 使用虚拟滚动视图显示海量数据

    jQuery EasyUI 数据网格 - 使用虚拟滚动视图显示海量数据 数据网格(datagrid)的虚拟滚动特性可以用来显示大数量的记录而不需要分页. 当滚动垂直滚动条时,数据网格(datagrid ...

  3. 【Mysql】Mysql Json类型或Text类型可以建索引吗?

    一.JSON类型 答案是不可以 为Json类型建索引会报错 mysql)); ERROR (): JSON column 'card_pay_data' cannot be used in key s ...

  4. (01) 什么是Spring Boot

    1.Spring Boot 是spring家族的全新框架: Spring Boot 是简化spring 应用程序的创建和开发过程, 也就是说Spring Boot 能够简化之前采用ssh, ssm框架 ...

  5. 201621123075《Java程序设计》第1周学习总结

    1.本周学习总结 本周简单了解了一些Java的基本概念,如Java的用途,功能.也学习了一些变量,类型和运算符.我感觉学好Java也是不容易的,尽管它库函数丰富,可最重要的还是那一份创造力. 2.书面 ...

  6. Python第一发:Hello world

     #!/usr/bin/python def main () : print 'hello world' main ()

  7. python全栈开发笔记---------字符串格式化

    字符串格式化 %s 可以接收任何值, %d只能接收整形 .其他类型报错 msg ='i am %s my body' %'ales' print(msg) #i am ales my body msg ...

  8. 数组的高级API-sort

    按升降序排列数组项.本身存在的问题:只能通过第一位排列.解决方法:通过回调函数进行规制设置. a - b 升序. b - a 降续. 其内部运用了冒泡排序 <!DOCTYPE html> ...

  9. Problem D: 类的初体验(IV)

    Description 定义一个类Data,只有一个int类型的属性和如下方法: 1.   缺省构造函数,将属性初始化为0,并输出"Data's default constructor.&q ...

  10. 如何ASP.NET Core Razor中处理Ajax请求[转载]

    在ASP.NET Core Razor(以下简称Razor)刚出来的时候,看了一下官方的文档,一直没怎么用过. 今天闲来无事,准备用Rozor做个项目熟练下,结果写第一个页面就卡住了..折腾半天才搞好 ...