一、首先以windows服务器端为例
a) 下载redis64-2.6.12.1.zip
b) 解压redis64-2.6.12.1.zip 到D:\redis\redis64-2.6.12.1
c) 启动运行命令 开始---在搜索栏输入cmd------进入redis D:\redis\redis64-2.6.12.1安装目录
d) 输入 redis-server.exe redis.conf 启动redis 最后一定要带redis.conf
出现以上结果成功启动
注意:这个窗口不能关闭,一旦关闭其redis服务器也将关闭
e) 另外从新启动一个命令窗口 同c 进入redis安装目录
f) 输入 redis-cli.exe -h 172.0.3.6 –p 6379 设置redis服务器IP以及端口
这里在redis缓存服务器中存入了一个key为lu,value为Administrator的属性值 接着get key 就可以得到value值
二、接着项目配置
a) 首先配置redis的属性文件进行连接redis服务器 配置文件如下:
b) 由于本次项目是基于spring的所以在配置
c) 在项目启动加载配置文件app-context.xml的同时 在app-context.xml文件中引入
<import resource="app-redis.xml"/> 并且加载redis.properties属性文件
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:conf/redis.properties</value>
</list>
</property>
</bean>
d) 编写redisservice服务接口 (具体代码请参考DCMP_BASE_USER项目)
e) 编写redisService服务接口实现类 (具体代码请参考DCMP_BASE_USER项目)
到这里redis服务器基本已经跟项目所继承
三、接下来是如何使用 这里已登录为例
a) 这里有个过滤器在项目初始化的时候我读取redisService
b) public void init(FilterConfig filterConfig) throws ServletException {
redisService =SpringContextHolder.getBean("redisService");
}
在过滤器中我过滤掉一些在项目中所有没有参与数据的页面和请求 包括登录页面请求
c) 登录成功以后把登录用户信息放入到redis缓存中
redisService.add(Constants.SESSION_USEROBJNAME, user, Constants.SESSION_TIMEOUT);
第一个参数是key 第二个参数为value 第三个参数是在redis服务器中存放的时间
在第四点中将介绍redisService中所有方法的含义
四、RedisService方法含义 以及使用
a) Redis 存放数据相当于一个MAP 有key value值组成
i. public boolean add(finalRedisTransient rt,final boolean isPeresistent);
第一个参数是一个自定义对象其中包含id 和 name 属性 第二个参数是否永久保存 true为永久保存 false为不是
如果需要设置缓存时间,则第二个参数“timeout”设为false,切在常量类Constants中的SESSION_TIMEOUT设置超时秒数;
ii. public boolean add(final StringkeyStr, final Object valOb,final boolean isPeresistent);
第一个参数是key 第二个参数为value value为Object 类型 第三个参数同i中的意义相同
iii. public boolean add(finalList<RedisTransient> list,final boolean isPeresistent);
批量新增 使用pipeline方式
iv. public void delete(String key);
通过key删除缓存服务器中的数据
v. public voiddelete(List<String> keys);
删除多个
vi. public boolean update(finalRedisTransient rt);
修改
vii. public boolean update(finalString keyStr, final Object valOb);
根据key,修改对象。
注意:第二个参数对象必须序列化。
viii. public String getStrValue(finalString keyId);
通过key获取
ix. public Object getEntity(finalString keyId);
通过key获取缓存对象
x. public boolean expire(finalString keyId);
拦截器调用--每次访问时,重新设置session的超时时间
xi. public boolean add(final StringkeyStr, final Object valOb,final Long time);
新增 Object
注意:如果永久保存,第二个参数“isPeresistent”设为true;
如果需要设置缓存时间,则第二个参数“time”就是需要缓存的时间单位(秒);