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 非关系性数据库集群的搭建与常用方法的更多相关文章

  1. Redis非关系型缓存数据库集群部署、参数、命令工具

    <关系型数据库与非关系型数据库> 关系数据库:mysql.oracle.DB2.SQL Server非关系数据库:Redis(缓存数据库).MongodDB(处理海量数据).Memcach ...

  2. 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 / ...

  3. Redis 3主-3从集群的搭建(CentOS 7)

    注意ip地址为: 虚拟机ip设置 TYPE="Ethernet"BOOTPROTO="static"NAME="enp0s3"DEVICE= ...

  4. reids非关系性数据库

     1.Redis环境配置 下载安装地址: https://github.com/MicrosoftArchive/redis/releases 解压文件到指定的目录,D:\ChromeCoreDown ...

  5. 深入学习Redis(5):集群

    前言 在前面的文章中,已经介绍了Redis的几种高可用技术:持久化.主从复制和哨兵,但这些方案仍有不足,其中最主要的问题是存储能力受单机限制,以及无法实现写操作的负载均衡. Redis集群解决了上述问 ...

  6. redis主从架构,分片集群详解

    写在前面:这篇笔记有点长,如果你认真看完,收获会不少,如果你只是忘记了相关命令,请翻到末尾. redis的简单介绍: 一个提供多种数据类类型储存,整个系统都在内存中运行的, 定期通过异步的方式把数据刷 ...

  7. Redis 5.0.7 讲解,单机、集群模式搭建

    Redis 5.0.7 讲解,单机.集群模式搭建 一.Redis 介绍 不管你是从事 Python.Java.Go.PHP.Ruby等等... Redis都应该是一个比较熟悉的中间件.而大部分经常写业 ...

  8. Redis之高可用、集群、云平台搭建

    原文:Redis之高可用.集群.云平台搭建 文章大纲 一.基础知识学习二.Redis常见的几种架构及优缺点总结三.Redis之Redis Sentinel(哨兵)实战四.Redis之Redis Clu ...

  9. 数据库集群 MySQL主从复制

    MySQL主从复制 本节内容我们联系使用MySQL的主从复制功能配置Master和Slave节点,验证数据MySQL的数据同步功能. 因为要使用多个MySQL数据库,所以不建议在电脑上安装多个MySQ ...

随机推荐

  1. java序列化问题

    今天无意中看到了     redistemplet封装的类中,出现了序列化的字眼 ,了解下序列化的知识 1.什么是序列化 我们把变量从内存中变成可存储或传输的过程称之为序列化,(java中一般是用来保 ...

  2. 经典论文翻译导读之《Google File System》(转)

    [译者预读] GFS这三个字母无需过多修饰,<Google File System>的论文也早有译版.但是这不妨碍我们加点批注.重温经典,并结合上篇Haystack的文章,将GFS.TFS ...

  3. Linux用户名、用户组的相关命令

    whoami  查看当前登录用户 id 用户名  查看用户名的id 及所属组 groups 查看当前登录用户的所有所属组 groups 用户名 查看指定用户的所有所属组 cat /etc/passwd ...

  4. 用C#创建XML, XML格式化输出

    demo: XmlDocument doc = new XmlDocument(); XmlDeclaration dec = doc.CreateXmlDeclaration("1.0&q ...

  5. linux 覆盖可执行文件的问题

    测试环境是3.10.0 内核. 有一次操作中,发现cp -f A B执行的时候,行为不一样: 当B没被打开,则正常覆盖B. 当B是被打开,但没有被执行,则能覆盖, 当B被打开,且被执行,则不能直接覆盖 ...

  6. zstack使用笔记之端口转发

    根据官方教程,使用端口转发,可以把公网流量转发到内网 实验环境是这样的 公网网段:172.17.3.x 内网网段:192.168.1.x 首先创建云路由网络,这个就不说了,根据教程大家都可以创建出来, ...

  7. SSL和TLS协议的区别

    SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层.SSL通过互相认证.使用数字签名确保完整性.使用加密确保私密性,以实现客户 ...

  8. 给tkinter文本框添加右键菜单

    给tkinter文本框添加右键菜单 需求:直接右键点击使用tkinter创建的文本框是不会弹出菜单的.我们需要实现右键点击tkinter框架下的Entry对象.Text对象后弹出右键菜单可复制.粘贴和 ...

  9. Hibernate学习笔记2.3(Hibernate基础配置)

    映射,注释可以放在成员变量上面,也可以放在get方法上面 写在成员变量的话 破坏了java的面向对象思维 直接让hibernate访问内部的私有元素 要是能直接设指不合适哈哈 所以主张写在get方法上 ...

  10. 浏览器唤起APP的思路(本文转载)

    在做 h5 页面中,会遇到这样一个需求,有一个立即打开的按钮,如果本地安装了我们的 app,那么点击就直接唤起本地 app,如果没有安装,则跳转到下载. 首先想到的是两个问题:一是如何唤起本地 app ...