博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis的安装过程及与SSM结合使用
阅读量:6446 次
发布时间:2019-06-23

本文共 12065 字,大约阅读时间需要 40 分钟。

Redis的安装过程及与SSM结合使用

Redis安装过程

  1. 下载安装包,解压,Mac系统将文件夹放在/usr/local文件夹下
  2. 打开终端,先安装服务器端server
    终端$ cd /usr/local/redis/
  3. 去文件下进入redis.config文件
    这里写图片描述
    找到requirepass删除前面的#
    并修改后面拼接的密码
    保存
  4. 进入终端
    输入命令
    终端$ cd src/
    终端$ ./redis-server ../redis.conf
    进入redis的服务器端
    Ctrl + c退出

(如果在过程中提示没有权限就在命令前加sudo)

但在使用的过程中不要退出

  1. 再开启一个终端,安装客户端试用
    命令
    终端$ cd /usr/local/redis/src/
    终端$ ./redis-cli -a 密码
    就进入到了redis的客户端

操作redis客户端的命令

这里写图片描述
前面的是ip地址:端口号
keys * 查询所有的key
这里写图片描述
设置key和value
get name
通过key获取value
flushdb
清除redis内存中的数据,但不建议经常使用,影响服务器的性能
del name
也可以通过key删除数据
exit
退出

redis和SSM结合使用

1.搭建一个SSM的项目,并连接数据库

下面我主要介绍和redis有关的配置
2.创建RedisCache类,这个类是redis的核心

package com.dhl.redis;// redis缓存// jedis redis for Java/** * 序列化的是数据 * 不会序列化类结构 * 但会序列化关系(数据对应的类结构) */public class RedisCache implements Cache {
// 基于Redis的MyBatis二级缓存的实现 // 需要中间类对其进行静态注 private static JedisConnectionFactory jedisConnectionFactory; private final String id; private final ReadWriteLock readWriteLock = new ReentrantReadWriteLock(); public static void setJedisConnectionFactory(JedisConnectionFactory jedisConnectionFactory) { RedisCache.jedisConnectionFactory = jedisConnectionFactory; } // 根据标识构造缓存对象 public RedisCache(String id) { if (id == null){ // 抛出非法参数异常 throw new IllegalArgumentException("缓存id不能为空"); } this.id = id; } /** * 获取缓存对象的唯一标准 * * @return */ public String getId() { return this.id; } /** * 把key/value保存到缓存对象中 */ public void putObject(Object key, Object value) { JedisConnection jedisConnection = null; try { //操作readis进行保存 jedisConnection = (JedisConnection) jedisConnectionFactory.getConnection(); //创建一个序列化工具 RedisSerializer serializer = new JdkSerializationRedisSerializer(); // 创建连接,保存key的value jedisConnection.set(serializer.serialize(key),serializer.serialize(value)); }catch (JedisConnectionException e){ e.printStackTrace(); }finally { if (jedisConnection != null){ jedisConnection.close(); } } } public Object getObject(Object key) { // 通过key从缓存对象中获取value Object result = null; JedisConnection jedisConnection = null; try { // 建立连接 jedisConnection = (JedisConnection) jedisConnectionFactory.getConnection(); RedisSerializer serializer= new JdkSerializationRedisSerializer(); byte[] bytes = jedisConnection.get(serializer.serialize(key)); // 1. 将key序列化 // 2. 通过connection获取序列化的value // 3. 将序列化的value反序列化 result = serializer.deserialize(bytes); /** * 序列化的是数据 * 不会序列化类结构 * 但会序列化关系(数据对应的类结构) */ }catch (JedisConnectionException e){ e.printStackTrace(); }finally { if (jedisConnection != null){ jedisConnection.close(); } } return result; } /** * 不是需要实现的方法,没有被核心框架调用 * 方法作用: 根据key移除对应的value */ public Object removeObject(Object key) { Object result = null; JedisConnection jedisConnection = null; try { // 建立连接 jedisConnection = (JedisConnection) jedisConnectionFactory.getConnection(); RedisSerializer serializer= new JdkSerializationRedisSerializer(); // 移除保存到的值 result = jedisConnection.expire(serializer.serialize(key),0); }catch (JedisConnectionException e){ e.printStackTrace(); }finally { if (jedisConnection != null){ jedisConnection.close(); } } return result; } // 清除缓存(操作影响性能,效率低,不建议经常清除) public void clear() { JedisConnection jedisConnection = null; try { jedisConnection = (JedisConnection) jedisConnectionFactory.getConnection(); // 清除缓存 jedisConnection.flushDb(); // 清除设置 jedisConnection.flushAll(); }catch (JedisConnectionException e){ }finally { if (jedisConnection != null){ jedisConnection.close(); } } } /** * 获取缓存对象中存取的key/value的数量 * @return */ public int getSize() { Integer count = 0; JedisConnection jedisConnection = null; try { jedisConnection = (JedisConnection) jedisConnectionFactory.getConnection(); count = Integer.valueOf(jedisConnection.dbSize().toString()); }catch (JedisConnectionException e){ }finally { if (jedisConnection != null){ jedisConnection.close(); } } return count; } // 获取读写锁 // 从mybatis的3.2.6版本,这个方法不再被框架核心调用 // 所有需要的锁,都必须由缓存供应商来提供 public ReadWriteLock getReadWriteLock() { return this.readWriteLock; }}

3.创建中间类

package com.lanou.redis;public class RedisCacheTransfer {
@Autowired public void setJedisConnectionFactory(JedisConnectionFactory jedisConnectionFactory){ RedisCache.setJedisConnectionFactory(jedisConnectionFactory); }}

4.redis的配置文件—-(1)redis.properties

# Redis的配置redis.host=127.0.0.1redis.port=6379redis.pass=111111redis.maxIdl=300redis.maxActive=600redis.maxWait=1000

5.redis的配置文件—-(2)SSM-redis.xml

这个配置文件也可以和SSM-mybatis.xml配置文件写在一起

classpath:redis.properties
classpath:db.properties

6.mybatis的配置文件—–mybatis-config.xml

7.最后不要忘记在web.xml的配置文件中配置SSM-redis.xml

8.可以写查询语句进行测试,运行成功之后我们可以去进入终端,使用redis的客户端,通过key * 可以查到内存中的数据

Redis安装过程

  1. 下载安装包,解压,Mac系统将文件夹放在/usr/local文件夹下
  2. 打开终端,先安装服务器端server
    终端$ cd /usr/local/redis/
  3. 去文件下进入redis.config文件

    找到requirepass删除前面的#

    并修改后面拼接的密码
    保存

  4. 进入终端
    输入命令
    终端$ cd src/
    终端$ ./redis-server ../redis.conf
    进入redis的服务器端
    Ctrl + c退出

(如果在过程中提示没有权限就在命令前加sudo)

但在使用的过程中不要退出

  1. 再开启一个终端,安装客户端试用
    命令
    终端 ./redis-cli -a 密码
    就进入到了redis的客户端

操作redis客户端的命令

*

前面的是ip地址:端口号

keys * 查询所有的key
*

设置key和value

*

通过key获取value

*

清除redis内存中的数据,但不建议经常使用,影响服务器的性能

*

也可以通过key删除数据

*

退出

redis和SSM结合使用

1.搭建一个SSM的项目,并连接数据库

下面我主要介绍和redis有关的配置
2.创建RedisCache类,这个类是redis的核心

package com.dhl.redis;// redis缓存// jedis redis for Java/** * 序列化的是数据 * 不会序列化类结构 * 但会序列化关系(数据对应的类结构) */public class RedisCache implements Cache {
// 基于Redis的MyBatis二级缓存的实现 // 需要中间类对其进行静态注 private static JedisConnectionFactory jedisConnectionFactory; private final String id; private final ReadWriteLock readWriteLock = new ReentrantReadWriteLock(); public static void setJedisConnectionFactory(JedisConnectionFactory jedisConnectionFactory) { RedisCache.jedisConnectionFactory = jedisConnectionFactory; } // 根据标识构造缓存对象 public RedisCache(String id) { if (id == null){ // 抛出非法参数异常 throw new IllegalArgumentException("缓存id不能为空"); } this.id = id; } /** * 获取缓存对象的唯一标准 * * @return */ public String getId() { return this.id; } /** * 把key/value保存到缓存对象中 */ public void putObject(Object key, Object value) { JedisConnection jedisConnection = null; try { //操作readis进行保存 jedisConnection = (JedisConnection) jedisConnectionFactory.getConnection(); //创建一个序列化工具 RedisSerializer serializer = new JdkSerializationRedisSerializer(); // 创建连接,保存key的value jedisConnection.set(serializer.serialize(key),serializer.serialize(value)); }catch (JedisConnectionException e){ e.printStackTrace(); }finally { if (jedisConnection != null){ jedisConnection.close(); } } } public Object getObject(Object key) { // 通过key从缓存对象中获取value Object result = null; JedisConnection jedisConnection = null; try { // 建立连接 jedisConnection = (JedisConnection) jedisConnectionFactory.getConnection(); RedisSerializer serializer= new JdkSerializationRedisSerializer(); byte[] bytes = jedisConnection.get(serializer.serialize(key)); // 1. 将key序列化 // 2. 通过connection获取序列化的value // 3. 将序列化的value反序列化 result = serializer.deserialize(bytes); /** * 序列化的是数据 * 不会序列化类结构 * 但会序列化关系(数据对应的类结构) */ }catch (JedisConnectionException e){ e.printStackTrace(); }finally { if (jedisConnection != null){ jedisConnection.close(); } } return result; } /** * 不是需要实现的方法,没有被核心框架调用 * 方法作用: 根据key移除对应的value */ public Object removeObject(Object key) { Object result = null; JedisConnection jedisConnection = null; try { // 建立连接 jedisConnection = (JedisConnection) jedisConnectionFactory.getConnection(); RedisSerializer serializer= new JdkSerializationRedisSerializer(); // 移除保存到的值 result = jedisConnection.expire(serializer.serialize(key),0); }catch (JedisConnectionException e){ e.printStackTrace(); }finally { if (jedisConnection != null){ jedisConnection.close(); } } return result; } // 清除缓存(操作影响性能,效率低,不建议经常清除) public void clear() { JedisConnection jedisConnection = null; try { jedisConnection = (JedisConnection) jedisConnectionFactory.getConnection(); // 清除缓存 jedisConnection.flushDb(); // 清除设置 jedisConnection.flushAll(); }catch (JedisConnectionException e){ }finally { if (jedisConnection != null){ jedisConnection.close(); } } } /** * 获取缓存对象中存取的key/value的数量 * @return */ public int getSize() { Integer count = 0; JedisConnection jedisConnection = null; try { jedisConnection = (JedisConnection) jedisConnectionFactory.getConnection(); count = Integer.valueOf(jedisConnection.dbSize().toString()); }catch (JedisConnectionException e){ }finally { if (jedisConnection != null){ jedisConnection.close(); } } return count; } // 获取读写锁 // 从mybatis的3.2.6版本,这个方法不再被框架核心调用 // 所有需要的锁,都必须由缓存供应商来提供 public ReadWriteLock getReadWriteLock() { return this.readWriteLock; }}

3.创建中间类

package com.lanou.redis;public class RedisCacheTransfer {
@Autowired public void setJedisConnectionFactory(JedisConnectionFactory jedisConnectionFactory){ RedisCache.setJedisConnectionFactory(jedisConnectionFactory); }}

4.redis的配置文件—-(1)redis.properties

# Redis的配置redis.host=127.0.0.1redis.port=6379redis.pass=111111redis.maxIdl=300redis.maxActive=600redis.maxWait=1000

5.redis的配置文件—-(2)SSM-redis.xml

这个配置文件也可以和SSM-mybatis.xml配置文件写在一起

classpath:redis.properties
classpath:db.properties

6.mybatis的配置文件—–mybatis-config.xml

7.最后不要忘记在web.xml的配置文件中配置SSM-redis.xml

8.可以写查询语句进行测试,运行成功之后我们可以去进入终端,使用redis的客户端,通过key * 可以查到内存中的数据

原文地址

你可能感兴趣的文章
Vue + Mint-ui 封装滚轮选择器
查看>>
Struts2第五篇【类型转换器、全局、局部类型转换器】
查看>>
Shiro第四篇【Shiro与Spring整合、快速入门、Shiro过滤器、登陆认证】
查看>>
Android、iOS、Mac开源项目推荐
查看>>
Java 设计模式之工厂方法模式与抽象工厂模式
查看>>
VueConf 2017 大会现场笔记
查看>>
kafka数据迁移实践
查看>>
微服务入门权威指南
查看>>
CSS3基础
查看>>
五分钟看懂一个高难度的排序:堆排序
查看>>
lastTurnToMyCamile
查看>>
听说……七牛云被上海经信委点名了?
查看>>
在原生CSS中使用变量
查看>>
NAT网关之SNAT进阶使用(一)SNAT POOL
查看>>
由浅入深,带你进行容器错误隔离排查|航海日志 Vol.19
查看>>
视频通信系统的关键技术与挑战
查看>>
从Java到Kotlin(八)
查看>>
小程序开发利器:Matchmaker
查看>>
前端模块化杂记
查看>>
DevOps 和 SRE
查看>>