redis-3.0.0安装

前言

redis是常用的no-sql数据库,常用于缓存数据,同时,他也可以持久化数据。他是C语言开发的,所以安装的时候需要编译。

单机版redis

yum install gcc-c++(安装C语言编译环境)

安装

第一步:redis的源码包上传到linux系统(点击下载
第二步:tar xzvf redis-3.0.0.tar.gz(解压缩redis)
第三步:make(编译。需进入redis源码目录)
第四步:make install PREFIX=/usr/local/redis(安装redis到指定目录)

PREFIX参数指定redis的安装目录。一般软件安装到/usr目录下

启动

./redis-server(服务前端启动)

./redis-cli shutdown(服务关闭)

./redis-server redis.conf(服务后端启动-需执行以下操作)

cp redis.conf /usr/local/redis/bin/(将redis源码redis-3.0.0中的redis.conf复制到安装目录的bin下)

修改该配置文件,将其中的daemonize no改为yes

./redis-cli -h ip地址 -p 端口(连接客户端)

ping(判断服务健康状态)

redis集群

机制

(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。

(2)节点的fail是通过集群中超过半数的节点检测失效时才生效。

(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。

(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value。

(Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点)

集群搭建

Redis集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机。所以集群至少需要6台服务器。搭建伪分布式。可以使用一台虚拟机运行6个redis实例。需要修改redis的端口号7001-7006。

将前面单机版的redis复制6份,放入新建文件夹redis-cluster中,分别为redis01~06。然后分别修改redis.conf配置文件。将端口号改为7001~7006,并删除cluster-enabled yes的注释。

安装集群搭建环境以及工具

yum install ruby(安装ruby)

yum install rubygems(ruby的包管理器)

gem install redis-3.0.0.gem(安装ruby脚本运行使用的第三方包,点击下载

cp redis-trib.rb /usr/local/redis-cluster(将redis源代码的src目录下的redis-trib.rb复制到redis-cluster文件夹下)

./redis-trib.rb create --replicas 1 ip地址:7001ip地址:7002ip地址:7003ip地址:7004ip地址:7005ip地址:7006(为这七台redis实例搭建集群。其中,-replicas 1的意思是每台redis服务器有一个备份机,执行完此命令后,该脚本会自动为这6个redis实例分配主从和槽。)

连接

./redis-cli -h ip地址 -p 7001 -c(连接redis集群,-c意思是连接的是集群,添加数据的时候会自动跳转到该数据对应槽的redis实例中)

总结

redis作为一个缓存数据库,同时可以持久化数据,应用场景还是非常多的,安装了redis,接下来就要介绍redis的数据类型以及java应用redis了。

最新文章

  1. SSIS Design4: 处理外键
  2. Java虚拟机10:类加载器
  3. 【转】--在Android源码树中添加userspace I2C读写工具(i2c-util)
  4. Android 热修复Nuwa的原理及Gradle插件源码解析
  5. cf111D Petya and Coloring 组合数学,二项式反演
  6. Kafka的Producer和Consumer源码学习
  7. APP测试基本流程
  8. mysql 高性能
  9. Codeforces Round #238 (Div. 1)
  10. Python和C|C++的混编(一):Python调用C、C++---Boost库
  11. Python定义常量
  12. 双缓冲绘图和窗口控件的绘制——ATL ActiveX 窗口控件生成向导绘制代码OnDraw的一个错误 .
  13. centos7安装图形化界面
  14. 关于flask登录视图报错AttributeError: &#39;_AppCtxGlobals&#39; object has no attribute &#39;user&#39;
  15. BZOJ5341[Ctsc2018]暴力写挂——边分治+虚树+树形DP
  16. 洛谷P2845-Switching on the Lights 开关灯
  17. Python实现排列组合
  18. centos6下ActiveMQ+Zookeeper消息中间件集群部署记录
  19. Android自适应屏幕的实现方法
  20. ubuntu修改运行级别方法

热门文章

  1. c#后台计算2个日期之间的天数差
  2. web.config增加组和调用
  3. route - 显示 / 操作IP选路表
  4. 一、WebApi模型验证
  5. (ACM模板)集合set
  6. 【LeetCode】抽样 sampling(共4题)
  7. 第一节 :Windows 平台安装 MongoDB
  8. JAVA学习笔记--初探hash与map
  9. JMeter生成UUID方式
  10. kylin相关问题