Redis与Spring整合
来源:互联网 发布:洗牌算法 编辑:程序博客网 时间:2024/05/20 23:36
Redis缓存
从数据库查询,加大数据库服务器压力,查询效率较低,用户体验度较
差。可以加上 redis 缓存解决这个问题。
查询数据库,先去 redis 缓存服务器查询,如果 redis 缓存服务器没有数据,在数据库查询,然后把数据再放入缓存。
Redis数据结构
Redis 是 key value 类型的非关系型数据库。
String 类型:value 是字符类型数据。
Hash 类型:存储对象,key,field,value.
List 类型:链表结构,时候插入数据。有序的,数据可以重复
Set 类型:数据不可重复。
Sortsets:有序 set 集合,根据分数排序,元素值不允许重复,分数可以重复。
Redis安装
安装单机版 redis
1) 第一步:导入 redis 安装包
2) 第二步:解压 redis 安装包
3) 第三步:进入 redis 解压目录进行编译
a) 编译命令:make
4) 第四步:安装
a) 安装命令:make install PREFIX=/usr/lcal/hadoop/redis
5) 启动
a) 前台启动
b) 后台启动
i. 修改配置文件:后台启动模式。
安装 redis 集群
1) 创建 8 个文件目录,文件目录命名:7001……7008
a) 目录名称要求和 redis 服务端口一致。
b) 每一个目录中都有 redis 服务
2) 开启每一个目录下 redis 服务集群功能
3) 修改每一个目录下 redis 服务端口
a) 服务端口和目录相同
port 7001…………………
4) 删除每一个服务持久化文件(rdb。aof)
a) 集群初始化会受到数据影响。保持开始集群为空。
5) 启动每一个 redis 服务
a) 启动命令:./redis-server redis.conf
6) 从 redis 解压目录中拷贝创建集群命令:redis-trib.rb
a) 拷贝 redis-trib.rb 到 redis-Cluster 集群目录
7) 创建集群
./redis-trib.rb create –replicas 1 192.168.66.66:7001 192.168.66.66:7002 192.168.66.66:7003
192.168.66.66:7004 192.168.66.66:7005 192.168.66.66:7006
8) 添加主节点集群
./redis-trib.rb add-node 192.168.66.66:7007 192.168.66.66:7001
9) 添加从节点集群
./redis-trib.rb add-node –slave –master-id 5c2d88f191ae0682d8a6ebb4b57ae0b080b669f0
192.168.66.66:7008 192.168.66.66:7001
连接集群
1) 启动集群
在 redis-Cluster 目录下创建启动集群批处理文件:start-all.sh
cd 7001/bin ./redis-server redis.conf cd ../../7002/bin ./redis-server redis.conf cd ../../7003/bin ./redis-server redis.conf cd ../../7004/bin ./redis-server redis.conf cd ../../7005/bin ./redis-server redis.conf cd ../../7006/bin ./redis-server redis.conf cd ../../7007/bin ./redis-server redis.conf cd ../../7008/bin ./redis-server redis.conf
2) 运行启动 sh 文件
a) ./start-all.sh
b) Sh start-all.sh
3) 登录集群
a) 登录命令:./redis-cli –c –h 192.168.66.66 –p 7001
4)查询集群节点信息
192.168.66.66:7001> cluster nodes
测试集群
@Test public void linkClusterRedis(){ //创建连接池对象 JedisPoolConfig poolConfig = new JedisPoolConfig(); //设置最大连接数 poolConfig.setMaxTotal(20); //设置最大空闲数 poolConfig.setMaxIdle(2); //创建封装主机ip和端口nodes的set集合 Set<HostAndPort> nodes = new HashSet<HostAndPort>(); nodes.add(new HostAndPort("192.168.66.66", 7001)); nodes.add(new HostAndPort("192.168.66.66", 7002)); nodes.add(new HostAndPort("192.168.66.66", 7003)); nodes.add(new HostAndPort("192.168.66.66", 7004)); nodes.add(new HostAndPort("192.168.66.66", 7005)); nodes.add(new HostAndPort("192.168.66.66", 7006)); nodes.add(new HostAndPort("192.168.66.66", 7007)); nodes.add(new HostAndPort("192.168.66.66", 7008)); //创建连接集群jedisCluster对象 JedisCluster jedisCluster = new JedisCluster(nodes, poolConfig); //给redis集群设置值 jedisCluster.set("address", "beijing"); //获取redis集群中值 String address = jedisCluster.get("address"); System.out.println(address); }
Jedis整合Spring
Jedis 连接 redis 服务器,实现功能添加缓存。
整合单机版
<!-- 整合单机版redis --> <!-- 创建jedisPoolConfig配置对象 --> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxTotal" value="20"></property> <property name="maxIdle" value="2"></property> </bean> <!-- 创建jedisPool连接单机版redis --> <bean id="jedisPool" class="redis.clients.jedis.JedisPool"> <constructor-arg name="poolConfig" ref="poolConfig"></constructor-arg> <constructor-arg name="host" value="192.168.66.66"></constructor-arg> <constructor-arg name="port" value="6379"></constructor-arg> </bean>
整合集群版
<!-- 整合单机版redis --> <!-- 创建jedisPoolConfig配置对象 --> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxTotal" value="20"></property> <property name="maxIdle" value="2"></property> </bean> <!-- 配置集群版redis --> <bean id="jedisCluster" class="redis.clients.jedis.JedisCluster"> <constructor-arg name="nodes"> <set> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.66.66"></constructor-arg> <constructor-arg name="port" value="7001"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.66.66"></constructor-arg> <constructor-arg name="port" value="7002"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.66.66"></constructor-arg> <constructor-arg name="port" value="7003"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.66.66"></constructor-arg> <constructor-arg name="port" value="7004"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.66.66"></constructor-arg> <constructor-arg name="port" value="7005"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.66.66"></constructor-arg> <constructor-arg name="port" value="7006"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.66.66"></constructor-arg> <constructor-arg name="port" value="7007"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.66.66"></constructor-arg> <constructor-arg name="port" value="7008"></constructor-arg> </bean> </set> </constructor-arg> <constructor-arg name="poolConfig" ref="poolConfig"></constructor-arg> </bean>
Jedis接口服务
public interface JedisService { //String类型 public String set(String key,String value); //String get public String get(String key); //hash类型 public Long hset(String key, String field, String value); //hash get public String hget(String key, String field); //hash delete public Long hdel(String key,String fields); //设置数据过期 public Long expire(String key,int seconds); //测试过期时间过程 public Long ttl(String key); }
- Redis与Spring整合
- redis与spring整合
- Redis与Spring整合
- Redis与Spring整合
- Spring与Redis整合
- Spring与Redis整合
- spring与spring-data-redis整合redis
- redis与spring aop整合
- Spring与Redis的整合
- Redis系列-JAVA与redis整合-spring-redis
- spring与redis整合(二)--采用spring-data-redis方式
- spring cache 与redis缓存整合
- redis与Spring Cache的整合
- spring 与redis缓存整合 实例
- spring的cacheManager与redis的整合
- Redis学习之与Spring整合开发
- Redis与spring的整合遇到问题
- spring-data-redis与Jedis整合使用
- 【持续更新】人工智能重要新闻集合,欢迎收藏
- 互联网架构,如何进行容量设计?
- 搭建自己的ss服务器与使用
- 基础排序算法总览--JAVA
- 移动端IOS系统项目总结
- Redis与Spring整合
- 一分钟了解负载均衡的一切
- Activity四种启动模式总结
- pyspider中给回调函数传参数
- Tcpdump的用法及使用案例
- EQ智力游戏
- 自定义DialogFragment异常问题分析和解决笔记
- 每天一个Linux命令(7):mv
- 搬瓦工shadowsocks多用户配置教程