redis环境搭建——Spring mvc 集成
首先:安装java jdk
官网:http://redis.io
下载安装包 redis-2.8.19.tar.gz
首先解压 tar zxvf redis-2.8.19.tar.gz
然后 cd redis-2.8.19
执行 make 命令
编译完源文件会出现 src 目录
cd src 然后执行 make install 命令
注:make完成后,有产生可执行文件
redis-server:redis服务器的启动程序
redis-cli:redis命令行工具,也可为客户端
redis-benchmark:redis性能测试工具(读写)
redis-stat:redis状态检测工具(状态参数延迟)
一下是为了方便管理需要对redis的一些关键文件进行移动
mkdir –p /usr/redis/bin
mkdir –p /usr/redis/etc
mv redis-2.8.19/redis.conf /usr/redis/etc
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/redis/bin
步骤四:
启动redis服务
/usr/redis/bin/redis-server /usr/redis/etc/redis.conf(redis启动时候一定指定配置文件)
Redis服务端的默认连接端口是6379
Redis默认不是后台运行
步骤五:
客户端连接
./usr/redis/bin/redis-cli
步骤六:
停止Redis
/usr/redis/bin/redis-clishutdown
or
pkill redis-server
Redis的配置
daemonize 如果需要在后台运行,把该项改为yes
pidfile 配置多个pid的地址,默认在/var/run/redis.pid
bind 绑定ip,设置后只接受自该ip的请求
port 监听端口,默认为6379
timeout 设置客户端连接时的超时时间,单位为秒
loglevel 分为4级,debug、verbose、notice、warning
logfile 配置log文件地址
databases 设置数据库的个数,默认使用的数据库为0
save 设置redis进行数据库镜像的频率,保存快照的频率,第一个*表示多长时间, 第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
rdbcompression 在进行镜像备份时,是否进行压缩
Dbfilename 镜像备份文件的文件名
Dir 数据库镜像备份的文件放置路径
Slaveof 设置数据库为其他数据库的从数据库
Masterauth 主数据库连接需要的密码验证
Requirepass 设置登录时需要使用的密码
Maxclients 限制同时连接的客户数量
Maxmemory 设置redis能够使用的最大内存
Appendonly 开启append only模式
appendfsync 设置对appendonly.aof文件同步的频率
vm-enabled 是否虚拟内存的支持
vm-swap-file 设置虚拟内存的交换文件路径
vm-max-memory 设置redis使用的最大物理内存大小
vm-page-size 设置虚拟内存的页大小
vm-pages 设置交换文件的总page数量
vm-max-threads 设置VMIO同时使用的线程数量
glueoutputbuf 把小的输出缓存存放在一起
hash-max-zipmap-entries 设置hash的临界值
activerehashing 重新hash
Spring MVC 集成redis配置
1.首先maven添加一下jar支持
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.4.2.RELEASE</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.5.1</version>
</dependency>
2.在spring-xml 文件中添加一下配置
<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:host-name="192.168.241.132" p:port="6379" p:password="xudong" />
这里如果设置了密码请一定要把密码参数传递 不然在执行过程中会出现不能授权的情况
3.创建一个工具类来操作redis
@Service
public class RedisService {
//操作redis客户端
private static Jedis jedis;
@Autowired
@Qualifier("jedisConnectionFactory")
private JedisConnectionFactory jedisConnectionFactory;
private RedisService (){}
/**
* 获取一个jedis 客户端
* @return
*/
private synchronized Jedis getJedis(){
if(jedis == null){
return jedisConnectionFactory.getShardInfo().createResource();
}
return jedis;
}
/**
* 通过key删除(字节)
* @param key
*/
public void del(byte [] key){
this.getJedis().del(key);
}
/**
* 通过key删除
* @param key
*/
public void del(String key){
this.getJedis().del(key);
}
/**
* 添加key value 并且设置存活时间(byte)
* @param key
* @param value
* @param liveTime
*/
public void set(byte [] key,byte [] value,int liveTime){
this.set(key, value);
this.getJedis().expire(key, liveTime);
}
/**
* 添加key value 并且设置存活时间
* @param key
* @param value
* @param liveTime
*/
public void set(String key,String value,int liveTime){
this.set(key, value);
this.getJedis().expire(key, liveTime);
}
/**
* 添加key value
* @param key
* @param value
*/
public void set(String key,String value){
this.getJedis().set(key, value);
}
/**添加key value (字节)(序列化)
* @param key
* @param value
*/
public void set(byte [] key,byte [] value){
this.getJedis().set(key, value);
}
/**
* 获取redis value (String)
* @param key
* @return
*/
public String get(String key){
String value = this.getJedis().get(key);
return value;
}
/**
* 获取redis value (byte [] )(反序列化)
* @param key
* @return
*/
public byte[] get(byte [] key){
return this.getJedis().get(key);
}
/**
* 通过正则匹配keys
* @param pattern
* @return
*/
public Set<String> keys(String pattern){
return this.getJedis().keys(pattern);
}
/**
* 检查key是否已经存在
* @param key
* @return
*/
public boolean exists(String key){
return this.getJedis().exists(key);
}
/**
* 清空redis 所有数据
* @return
*/
public String flushDB(){
return this.getJedis().flushDB();
}
/**
* 查看redis里有多少数据
*/
public long dbSize(){
return this.getJedis().dbSize();
}
/**
* 检查是否连接成功
* @return
*/
public String ping(){
return this.getJedis().ping();
}
}
以上copy可以用