Redis的安装过程及与SSM结合使用
来源:互联网 发布:编程的小松鼠壁挂炉 编辑:程序博客网 时间:2024/06/03 09:32
Redis安装过程
下载安装包,解压,Mac系统将文件夹放在
/usr/local
文件夹下打开终端,先安装服务器端server
终端$cd /usr/local/redis/
去文件下进入redis.config文件
找到requirepass删除前面的#
并修改后面拼接的密码
保存- 进入终端
输入命令
终端$cd src/
终端$./redis-server ../redis.conf
进入redis的服务器端
Ctrl + c退出
(如果在过程中提示没有权限就在命令前加sudo)
但在使用的过程中不要退出
- 再开启一个终端,安装客户端试用
命令
终端$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<Object> 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<Object> 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<Object> 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配置文件写在一起
<?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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:redis.properties</value> <value>classpath:db.properties</value> </list> </property> </bean> <!--构建redis的数据源--> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="${redis.maxIdl}"/> <property name="maxTotal" value="${redis.maxActive}"/> <property name="maxWaitMillis" value="${redis.maxWait}"/> </bean> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:hostName="${redis.host}" p:port="${redis.port}" p:password="${redis.pass}" p:poolConfig-ref="poolConfig" /> <bean id="redisCacheTranfer" class="com.lanou.redis.RedisCacheTransfer"> <property name="jedisConnectionFactory" ref="jedisConnectionFactory"/> </bean></beans>
6.mybatis的配置文件—–mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <settings> <!-- Globally enables or disables any caches configured in any mapper under this configuration --> <setting name="cacheEnabled" value="true"/> <!-- Sets the number of seconds the driver will wait for a response from the database --> <setting name="defaultStatementTimeout" value="3000"/> <!-- Enables automatic mapping from classic database column names A_COLUMN to camel case classic Java property names aColumn --> <setting name="mapUnderscoreToCamelCase" value="true"/> <!-- Allows JDBC support for generated keys. A compatible driver is required. This setting forces generated keys to be used if set to true, as some drivers deny compatibility but still work --> <setting name="useGeneratedKeys" value="true"/> <!--查询的时候,关闭关联对象即使加载,为了提高性能--> <setting name="lazyLoadingEnabled" value="false"/> <!--允许多个结果集,默认就是true--> <setting name="multipleResultSetsEnabled" value="true"/> <!--设置关联的对象加载的形态,此处是按需加载字段.不会加载所有的字段,而是有sql来决定--> <setting name="aggressiveLazyLoading" value="true"/> </settings> <!-- Continue going here --></configuration>
7.最后不要忘记在web.xml的配置文件中配置SSM-redis.xml
8.可以写查询语句进行测试,运行成功之后我们可以去进入终端,使用redis的客户端,通过key * 可以查到内存中的数据
Redis安装过程
下载安装包,解压,Mac系统将文件夹放在
/usr/local
文件夹下打开终端,先安装服务器端server
终端$cd /usr/local/redis/
去文件下进入redis.config文件
找到requirepass删除前面的#
并修改后面拼接的密码
保存- 进入终端
输入命令
终端$cd src/
终端$./redis-server ../redis.conf
进入redis的服务器端
Ctrl + c退出
(如果在过程中提示没有权限就在命令前加sudo)
但在使用的过程中不要退出
- 再开启一个终端,安装客户端试用
命令
终端cd/usr/local/redis/src/终端 ./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<Object> 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<Object> 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<Object> 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配置文件写在一起
<?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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:redis.properties</value> <value>classpath:db.properties</value> </list> </property> </bean> <!--构建redis的数据源--> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="${redis.maxIdl}"/> <property name="maxTotal" value="${redis.maxActive}"/> <property name="maxWaitMillis" value="${redis.maxWait}"/> </bean> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:hostName="${redis.host}" p:port="${redis.port}" p:password="${redis.pass}" p:poolConfig-ref="poolConfig" /> <bean id="redisCacheTranfer" class="com.lanou.redis.RedisCacheTransfer"> <property name="jedisConnectionFactory" ref="jedisConnectionFactory"/> </bean></beans>
6.mybatis的配置文件—–mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <settings> <!-- Globally enables or disables any caches configured in any mapper under this configuration --> <setting name="cacheEnabled" value="true"/> <!-- Sets the number of seconds the driver will wait for a response from the database --> <setting name="defaultStatementTimeout" value="3000"/> <!-- Enables automatic mapping from classic database column names A_COLUMN to camel case classic Java property names aColumn --> <setting name="mapUnderscoreToCamelCase" value="true"/> <!-- Allows JDBC support for generated keys. A compatible driver is required. This setting forces generated keys to be used if set to true, as some drivers deny compatibility but still work --> <setting name="useGeneratedKeys" value="true"/> <!--查询的时候,关闭关联对象即使加载,为了提高性能--> <setting name="lazyLoadingEnabled" value="false"/> <!--允许多个结果集,默认就是true--> <setting name="multipleResultSetsEnabled" value="true"/> <!--设置关联的对象加载的形态,此处是按需加载字段.不会加载所有的字段,而是有sql来决定--> <setting name="aggressiveLazyLoading" value="true"/> </settings> <!-- Continue going here --></configuration>
7.最后不要忘记在web.xml的配置文件中配置SSM-redis.xml
8.可以写查询语句进行测试,运行成功之后我们可以去进入终端,使用redis的客户端,通过key * 可以查到内存中的数据
- Redis的安装过程及与SSM结合使用
- Redis安装及使用过程中遇到的问题
- jupyter与spark kernel结合的notebook安装及使用
- redis cluster 与lua的结合使用
- redis与lua脚本的结合使用
- scrapy-redis 安装 及使用 结合例子解释
- Redis (五 php与redis的结合使用)
- Redis (五 php与redis的结合使用)
- FreeMarker与Spring框架及SSM的整合过程
- FreeMarker与Spring框架及SSM的整合过程
- Redis的安装及使用
- Redis的安装及使用
- redis的安装及使用
- Redis的安装及使用
- redis的安装及使用
- redis与spring结合使用
- Redis与java结合使用
- redis的安装与使用
- ccf2017-03-3 MarkDown 神烦神烦的模拟题
- leetcode题目例题解析(二)
- hrbust 1492 盒子 二分图最大匹配
- 字符串相似度算法
- C语言——数组与指针-元素的值
- Redis的安装过程及与SSM结合使用
- 并发技术_2_Exchanger
- 面试题---实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。
- PCA降纬(python)
- 向量求导规则--最小二乘法求解最优解
- ICPC2017南宁邀请赛1001&&HDU6182(水
- Java中数据比较方式之==和equals比较
- 线性布局LinearLayout
- Apache beam其他学习记录