Redis 非关系性数据库集群的搭建与常用方法
redis 非关系型数据库,内存型数据库,现在大家都不陌生了,无论大中小型企业,都会将redis应用到自己的项目中,以此来减轻数据库的压力
安装步骤:
1.安装gcc
安装c语言的编译环境
yum install gcc-c++
2.解压缩并且编译
wget http://download.redis.io/releases/redis-3.2.6.tar.gz
tar -zxvf redis-3.2.6 //进入解压缩后的目录执行 make // 将编译后的文件放入/usr/local/redis 下,自己定义
make install PREFIX=/usr/local/redis
3.进行redis 后端启动,使用redis-conf 配置文件
//进入解压缩redis 目录将redis.conf 配置文件 copy 到 make install 后的目录
cp redis.conf /usr/local/redis/bin
//编辑 redis.conf
vim redis.conf
修改内容 :将no 改为 yes ,意思就是可以后台启动,不占用前台的端口

4.启动 redis
./redis-server redis.conf
5.检查是否启动成功
ps aux|grep redis

6,使用客户端连接
./redis-cli //连接其他客户端的redis ./redis-cli -h 192.168.241.129 -p 6379
ok ,单台的redis 我们已经配置好了,那么在企业中,redis 集群改怎么搭建呢?
-------redis 集群搭建,至少需要3个redis 主节点,我们这里搭建伪分布式-------
1.创建一个集群的文件夹,用于存放我们集群的reids bin文件
//创建集群的文件夹,用来存放我们的redis 集群 mkdir redisCluster //将 make install 后的redis 文件复制到redisCluster 中先复制一份 cp -r /usr/local/redis/bin /user/local/redisCluster/redis01 //修改其IP 端口号(不重复),以及打开cluster-enabled,如下图
修改端口

将集群模式打开,将cluster-enabled 的注释去掉

2,然后复制5份就行我们修改每一份的端口就可以了
cp -r redis01/ redis02
3.启动这六个redis 节点

4.开始安装集群: 需要ruby脚本的运行环境以及redis.gem,直接将红色部分复制运行就好
//需要安装ruby 脚本编译
yum install ruby yum install rubygems //手工下载redis.gem
wget --no-check-certificate https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
//编译
gem install -l ./redis-3.2.1.gem
5.找到redis 解压目录下的src目录 redis-trib.rb 文件
//复制到我们的redis集群中
cp redis-trib.rb /usr/local/redisCluster/
6.运行 redis-trib.rb 脚本:红的部分需要修改为自己设置的6个节点的ip与端口
./redis-trib.rb create --replicas 1 127.0.0.1:9001 127.0.0.1:9002 127.0.0.1:9003 127.0.0.1:9004 127.0.0.1:9005 127.0.0.1:9006
7.集群客户端测试-->连接必须带 -c
//必须指明端口和 -c
redis01/redis-cli -p 9002 -c
java jedis 测试连接单机版与集群版reids 测试方法
/**
* 单机版测试
*/
@Test
public void jedisSign() { JedisPool jedisPool =new JedisPool("127.0.0.1",6379); //从连接池中获取连接
Jedis jedis=jedisPool.getResource(); System.out.print(jedis.ping()); jedis.set("bba", "sss");
jedis.close(); } /**
* 连接集群版redis测试
* @throws IOException
*/
@Test
public void jedisCluster() throws IOException { //jedisCluster连接集群 //所有的集群节点都放在了HostAndPort 对象中
Set<HostAndPort> pool =new HashSet<>();
pool.add(new HostAndPort("192.168.241.129",9001) );
pool.add(new HostAndPort("192.168.241.129",9002) );
pool.add(new HostAndPort("192.168.241.129",9003) );
pool.add(new HostAndPort("192.168.241.129",9004) );
pool.add(new HostAndPort("192.168.241.129",9005) );
pool.add(new HostAndPort("192.168.241.129",9006) ); JedisCluster jedisCluster =new JedisCluster(pool); jedisCluster.set("testcluster", "jediscluster"); System.out.println(jedisCluster.get("testcluster"));
jedisCluster.close(); }
Redis数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。有意思的是redis的string包含所有二进制数据,包括图片等。String一个键最大存储512MB 数据
| 数据类型 | 获取 | 设置 |
| String | Get | Set |
| Hash | Hgetall | Hmset |
| List | Lrange | Lpush |
| Set | Smembers | Sadd |
| zset | Zrangebyscore | Zadd |
常用的就是String 与Hash 这两种数据类型
Redis 非关系性数据库集群的搭建与常用方法的更多相关文章
- Redis非关系型缓存数据库集群部署、参数、命令工具
<关系型数据库与非关系型数据库> 关系数据库:mysql.oracle.DB2.SQL Server非关系数据库:Redis(缓存数据库).MongodDB(处理海量数据).Memcach ...
- Redis Cluster 4.0.9 集群安装搭建
Redis Cluster 4.0.9集群搭建步骤:yum install -y gcc g++ gcc-c++ make openssl cd redis-4.0.9 make mkdir -p / ...
- Redis 3主-3从集群的搭建(CentOS 7)
注意ip地址为: 虚拟机ip设置 TYPE="Ethernet"BOOTPROTO="static"NAME="enp0s3"DEVICE= ...
- reids非关系性数据库
1.Redis环境配置 下载安装地址: https://github.com/MicrosoftArchive/redis/releases 解压文件到指定的目录,D:\ChromeCoreDown ...
- 深入学习Redis(5):集群
前言 在前面的文章中,已经介绍了Redis的几种高可用技术:持久化.主从复制和哨兵,但这些方案仍有不足,其中最主要的问题是存储能力受单机限制,以及无法实现写操作的负载均衡. Redis集群解决了上述问 ...
- redis主从架构,分片集群详解
写在前面:这篇笔记有点长,如果你认真看完,收获会不少,如果你只是忘记了相关命令,请翻到末尾. redis的简单介绍: 一个提供多种数据类类型储存,整个系统都在内存中运行的, 定期通过异步的方式把数据刷 ...
- Redis 5.0.7 讲解,单机、集群模式搭建
Redis 5.0.7 讲解,单机.集群模式搭建 一.Redis 介绍 不管你是从事 Python.Java.Go.PHP.Ruby等等... Redis都应该是一个比较熟悉的中间件.而大部分经常写业 ...
- Redis之高可用、集群、云平台搭建
原文:Redis之高可用.集群.云平台搭建 文章大纲 一.基础知识学习二.Redis常见的几种架构及优缺点总结三.Redis之Redis Sentinel(哨兵)实战四.Redis之Redis Clu ...
- 数据库集群 MySQL主从复制
MySQL主从复制 本节内容我们联系使用MySQL的主从复制功能配置Master和Slave节点,验证数据MySQL的数据同步功能. 因为要使用多个MySQL数据库,所以不建议在电脑上安装多个MySQ ...
随机推荐
- git 常用的命令总结
下载gitlab上的代码: git clone ssh://git@47.xx.xx.xx:4xx/xxx.git 查看git代码状态: git status 不提交的代码文件: git checko ...
- 经典论文翻译导读之《Finding a needle in Haystack: Facebook’s photo storage》
https://github.com/chrislusf/seaweedfs [译者预读]面对海量小文件的存储和检索,Google发表了GFS,淘宝开源了TFS,而Facebook又是如何应对千亿级别 ...
- MOBA项目定点数的一个想法
能不能这样: 写逻辑时全用整数,不用每用到一个浮点数就要转一下成浮点数. 主要是除法 题细节较多,待思考
- git rebase 合并提交 解决超过100M文件的提交不能推送问题
git log 现在可以看到有3个提交: change 1.mp4 size to small //发现不能推送,又改回小于100M add 1.mp4 big 改变为超过100M add 1.mp4 ...
- 二级菜单(avalon+jquery动画)
by 司徒正美 var vm = avalon.define({ $id: "test", array: [ { name: 111111, child: [ {name: 1.1 ...
- LeetCode OJ 19. Remove Nth Node From End of List
Given a linked list, remove the nth node from the end of list and return its head. For example, Give ...
- 解决eclipse+adt出现的 loading data for android 问题
因为公司最近做的项目中有用到一些第三方demo,蛋疼的是这些demo还比较旧...eclipse的... 于是给自己的eclipse装上了ADT插件,但是...因为我的eclipse比较新,Versi ...
- (转)Python新手写出漂亮的爬虫代码1——从html获取信息
https://blog.csdn.net/weixin_36604953/article/details/78156605 Python新手写出漂亮的爬虫代码1初到大数据学习圈子的同学可能对爬虫都有 ...
- hdu1215-七夕节-(埃氏筛+唯一分解定理)
七夕节 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- js基础-单体对象日期对象
Math对象 全局对象 日期对象 var t = new Date() t.toLocaleDateString(); t.getFullYear(); t.getMonth() + 1 t.getD ...