在pom.xml中添加redis客户端jedis依赖
- <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.6.0</version> </dependency>
redis linux下安装
1.下载、上传、解压
redis-4.0.2.tar.gz
2.安装C语言编译环境
yum install -y gcc-c++
3.编译安装
编译:进入Redis解压目录执行make命令
安装:make install
4.创建Redis专属目录
mkdir /usr/local/redis
5.将redis.conf复制到专属目录并修改
35 # By default Redis does not run as a daemon. Use 'yes' if you need it.
36 # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
37 daemonize yes
6.启动Redis
/usr/local/bin/redis-server /usr/local/redis/redis.conf
查看6379端口监听情况
临时指定端口号的启动方式如下:
/usr/local/bin/redis-server /usr/local/redis/redis.conf --port 7000
如果不指定配置文件位置则按默认配置启动。
7.压力测试
/usr/local/bin/redis-benchmark
Redis每秒80000次写操作,110000次读操作。
8.通过Redis客户端登录Redis服务器
[root@right bin]# /usr/local/bin/redis-cli [-p 6379]
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit
[root@right bin]#
9.停止Redis服务器
按默认6379端口号停止:/usr/local/bin/redis-cli shutdown
停止指定服务器:/usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown
在客户端登录状态下停止:127.0.0.1:6379> shutdown
新建spring配置文件 spring-redis.xml
<bean class="redis.clients.jedis.JedisPool" id="jedisPool">
<constructor-arg name="host" value="${redis.host}"></constructor-arg>
<constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg>
<constructor-arg name="port" value="${redis.port}"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.JedisPoolConfig" id="jedisPoolConfig">
<property name="maxIdle" value="${maxIdle}" />
<property name="maxTotal" value="${maxActive}" />
<property name="maxWaitMillis" value="${maxWait}" />
<property name="testOnBorrow" value="${testOnBorrow}" />
<property name="blockWhenExhausted" value="${blockWhenExhausted}" />
</bean>
新建redis.properties属性文件,相关的配置信息在属性文件中配置,比如host port 等等
# 主要配置,其他配置可不用填写
redis.host=对应的IP地址
redis.port=6379 #对应的端口号,默认6379
maxIdle=300
maxActive=1000
maxWait=1000
maxTotal=600
testOnBorrow=false
blockWhenExhausted=true
其他配置说明
#ip地址
redis.hostName=127.0.0.1
#端口号
redis.port=6379
#如果有密码
redis.password=
#客户端超时时间单位是毫秒 默认是2000
redis.timeout=10000
#最大空闲数
redis.maxIdle=300
#连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal
#redis.maxActive=600
#控制一个pool可分配多少个jedis实例,用来替换上面的redis.maxActive,如果是jedis 2.4以后用该属性
redis.maxTotal=1000
#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
redis.maxWaitMillis=1000
#连接的最小空闲时间 默认1800000毫秒(30分钟)
redis.minEvictableIdleTimeMillis=300000
#每次释放连接的最大数目,默认3
redis.numTestsPerEvictionRun=1024
#逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
redis.timeBetweenEvictionRunsMillis=30000
#是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个,数据量大的时候建议关闭
redis.testOnBorrow=true
#在空闲时检查有效性, 默认false
redis.testWhileIdle=true
编写redis通用工具类JedisCacheClient,因为我目前只用到三个,所以只写了三个最常用的set get 和expire
@Service //把当前类放入到spring的IOC容器中 public class JedisCacheClient { @Autowired //自动注入redis连接池 private JedisPool jedisPool; /** * setVExpire(设置key值,同时设置失效时间 秒 */ public void set(String key, String value) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.set(key, value); } catch (Exception e) { e.printStackTrace(); } finally { this.close(jedis); } } /** * (存入redis数据) */ public void expire(String key, String value, Integer times) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.set(key, value); jedis.expire(key, times); } catch (Exception e) { e.printStackTrace(); } finally { this.close(jedis); } } /** * 删除redis数据 */ public void del(String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.del(key); } catch (Exception e) { e.printStackTrace(); } finally { this.close(jedis); } }
/** * 获取key的值 */
public String get(String key) {
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
String s = jedis.get(key);
return s;
} catch (Exception e) {
e.printStackTrace();
} finally {
this.close(jedis);
}
return null;
}
/**
* 释放连接
* @param jedis
*/
public void close(Jedis jedis){
if (jedis != null) {
jedis.close();
if (jedis.isConnected()) {
try {
jedis.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
安装redis本地客户端Redis Desktop Manager进行测试和检验测试
安装Redis Desktop Manager,一直下一步即可
连接到redis服务器
- 测试代码