集群脚本_Redis集群和小项目!!!

cc1c8532f5ea092e6ce9d06f8f9f4905.png

学习主题:Redis

学习目标:

1 掌握Redis集群的搭建

2 掌握Jedis,JedisPool还有JedisCluster

3 掌握spring整合Jedis

对应视频:

http://www.itbaizhan.cn/course/id/85.html

对应文档:

对应作业

1. Redis集群-创建Redis集群(对应124-125)

(1) 如何搭建Redis集群?

需求: 三对主从(最小)

在192.168.93.130下安装六个redis实例

需要删除以前的dump.rdb与apeendonly.aof

8001-8006端口分配

步骤

Redis集群需要使用一个ruby的脚本来完成集群

1. 安装ruby环境

Yum install ruby

2. 安装ruby的包管理器

Yum install rubygems

3. 进入到redis的安装目录下的src目录下找到redis-trib.rb这个文件

4. 该脚本执行需要依赖一些其他的ruby包(下载一个redis-3.0.0.gem)

5. 安装这个ruby包

Gem install redis-3.0.0.gem

6. 先启动redis的6个实例

先在local目录下创建一个目录名称为redis-cluster

Mkdir redis-cluster

7.将安装好的redis下的bin目录拷贝到redis-cluster目录下,起名为redis01

8.复制redis01六次修改他们各自的配置文件

Port 端口 8001-8006

将cluster-enabled yes 去掉注释

7. 把创建集群的ruby脚本复制到redis-cluster中

8. 创建一个批量启动的脚本和一个批量关闭的脚本

9. 执行启动脚本

10. 查看所有的redis是否启动成功

11. 创建集群

: ./redis-trib.rb create --replicas 1 192.168.70.145:8001 192.168.70.145:8002

192.168.70.145:8003 192.168.70.145:8004 192.168.70.145:8005 192.168.70.145:8006

12. 测试redis集群

链接集群的任意一个节点测试 链接注意一定要有-c参数否则能连上,但是无法操作集群

[root@localhost redis-cluster]# ./redis01/redis-cli -h 192.168.10.128 -p 7001 -c

13.关闭集群脚本关闭

2. Jedis操作Redis单机版

(1) 什么是Jedis?

可以通过java代码来操作redis的工具

(2) 在代码中如何通过Jedis单机版操作Redis?

//获得redis对象

Jedis jedis = new Jedis("192.168.93.130",6379);

//jedis中的方法对应redis中的命令

jedis.set("bjsxt", "com");

System.out.println(jedis.get("bjsxt"));

}

JedisPool的使用

(3) 在代码中如何通过Jedis连接池操作Redis?

//获取连接池

JedisPool jedisPool = new JedisPool("192.168.93.130", 6379);

//得到jedis对象

Jedis jedis = jedisPool.getResource();

jedis.set("wudi1", "历史性");

System.out.println(jedis.get("wudi1"));

jedis.close();

3. JedisCluster的使用

(1) 如何通过JedisCluster操作Redis集群?

Set<HostAndPort> set = new HashSet<>();

set.add(new HostAndPort("192.168.93.130", 8001));

set.add(new HostAndPort("192.168.93.130", 8002));

set.add(new HostAndPort("192.168.93.130", 8003));

set.add(new HostAndPort("192.168.93.130", 8004));

set.add(new HostAndPort("192.168.93.130", 8005));

set.add(new HostAndPort("192.168.93.130", 8006));

JedisCluster jsCluster = new JedisCluster(set);

jsCluster.set("儿子", "fd");

System.out.println(jsCluster.get("儿子"));

4. Spring整合Jedis单机版-配置整合

(1) 在Spring中如何整合Jedis单机版?

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-m

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd">

<context:component-scan base-package="com.bjsxt.jedisService" />

<!-- jedisPool 的配置 -->

<bean id="poolconfig" class="redis.clients.jedis.JedisPoolConfig">

<!-- 最大连接数 -->

<property name="maxTotal" value="30" />

<!-- 最大空闲连接数 -->

<property name="maxIdle" value="10" />

<!-- 每次释放连接的最大数目 -->

<property name="numTestsPerEvictionRun" value="1024" />

<!-- 释放连接的扫描间隔(毫秒) -->

<property name="timeBetweenEvictionRunsMillis" value="30000" />

<!-- 连接最小空闲时间 -->

<property name="minEvictableIdleTimeMillis" value="1800000" />

<!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->

<property name="softMinEvictableIdleTimeMillis" value="10000" />

<!-- 获取连接时的最大等待毫秒数,小于零:阻塞不 确定的时间,默认-1 -->

<property name="maxWaitMillis" value="1500" />

<!-- 在获取连接的时候检查有效性, 默认 false -->

<property name="testOnBorrow" value="true" />

<!-- 在空闲时检查有效性, 默认 false -->

<property name="testWhileIdle" value="true" />

<!-- 连接耗尽时是否阻塞, false 报异常,ture 阻塞 直到超时, 默认 true -->

<property name="blockWhenExhausted" value="false" />

</bean>

<bean id="jedisPool" class="redis.clients.jedis.JedisPool">

<constructor-arg name="poolConfig" ref="poolconfig"></constructor-arg>

<constructor-arg name="host" value="192.168.93.130"></constructor-arg>

<constructor-arg name="port" value="6379"></constructor-arg>

</bean>

<bean id="jedisServiceImpl" class="com.bjsxt.jedisService.impl.jedisServiceImpl"></bean>

</beans>

分享/讲解/扩展思考

点名提问从第一节课到最后一节课分别学到了什么,直到同学们把所有的知识点都说出来并且保证无误。

第164次(Redis)

学习主题:Redis

学习目标:

1 掌握spring整合JedisCluster

2 掌握在dubbo+zookpeeker的环境中使用redis作为缓存技术

对应视频:

http://www.itbaizhan.cn/course/id/85.html

对应文档:

对应作业

5. Spring整合JedisCluster

(1) 在Spring中如何整合Jedis集群版?

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-m

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd">

<context:component-scan base-package="com.bjsxt.jedisService" />

<!-- jedisPool 的配置 -->

<bean id="poolconfig" class="redis.clients.jedis.JedisPoolConfig">

<!-- 最大连接数 -->

<property name="maxTotal" value="30" />

<!-- 最大空闲连接数 -->

<property name="maxIdle" value="10" />

<!-- 每次释放连接的最大数目 -->

<property name="numTestsPerEvictionRun" value="1024" />

<!-- 释放连接的扫描间隔(毫秒) -->

<property name="timeBetweenEvictionRunsMillis" value="30000" />

<!-- 连接最小空闲时间 -->

<property name="minEvictableIdleTimeMillis" value="1800000" />

<!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->

<property name="softMinEvictableIdleTimeMillis" value="10000" />

<!-- 获取连接时的最大等待毫秒数,小于零:阻塞不 确定的时间,默认-1 -->

<property name="maxWaitMillis" value="1500" />

<!-- 在获取连接的时候检查有效性, 默认 false -->

<property name="testOnBorrow" value="true" />

<!-- 在空闲时检查有效性, 默认 false -->

<property name="testWhileIdle" value="true" />

<!-- 连接耗尽时是否阻塞, false 报异常,ture 阻塞 直到超时, 默认 true -->

<property name="blockWhenExhausted" value="false" />

</bean>

<!-- <bean id="jedisPool" class="redis.clients.jedis.JedisPool">

<constructor-arg name="poolConfig" ref="poolconfig"></constructor-arg>

<constructor-arg name="host" value="192.168.93.130"></constructor-arg>

<constructor-arg name="port" value="6379"></constructor-arg>

</bean> -->

<!-- <bean id="jedisServiceImpl" class="com.bjsxt.jedisService.impl.jedisServiceImpl"></bean> -->

<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">

<constructor-arg name="poolConfig" ref="poolconfig"></constructor-arg>

<constructor-arg name="nodes">

<set>

<bean class="redis.clients.jedis.HostAndPort">

<constructor-arg name="host" value="192.168.93.130"></constructor-arg>

<constructor-arg name="port" value="8001"></constructor-arg>

</bean>

<bean class="redis.clients.jedis.HostAndPort">

<constructor-arg name="host" value="192.168.93.130"></constructor-arg>

<constructor-arg name="port" value="8002"></constructor-arg>

</bean>

<bean class="redis.clients.jedis.HostAndPort">

<constructor-arg name="host" value="192.168.93.130"></constructor-arg>

<constructor-arg name="port" value="8003"></constructor-arg>

</bean>

<bean class="redis.clients.jedis.HostAndPort">

<constructor-arg name="host" value="192.168.93.130"></constructor-arg>

<constructor-arg name="port" value="8004"></constructor-arg>

</bean>

<bean class="redis.clients.jedis.HostAndPort">

<constructor-arg name="host" value="192.168.93.130"></constructor-arg>

<constructor-arg name="port" value="8005"></constructor-arg>

</bean>

<bean class="redis.clients.jedis.HostAndPort">

<constructor-arg name="host" value="192.168.93.130"></constructor-arg>

<constructor-arg name="port" value="8005"></constructor-arg>

</bean>

</set>

</constructor-arg>

</bean>

<bean id="jedisServiceImplCluster" class="com.bjsxt.jedisService.impl.jedisServiceImplCluster"></bean>

</beans>

6. RedisDesktopManager的使用

(1) 如何通过Redis Desktop Manager工具管理Redis?

安装

5f9b375204182c20840a2ec65a707aaf.png

(2) Redis Desktop Manager在使用时需要注意什么?

只能链接单机版radis ,集群版不支持

7. Redis实战案例(对应133-138)

(1) 在Dubbo中完成对用户表的CRUD操作的项目中,添加Redis缓存 (源码打包提交)

看源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值