天易45------redis for windows安装与使用
1. 下载window版本的zip压缩包(Redis-x64-3.2.100版本)
2. 解压zip压缩包到指定目录,本文放在D:\javasoftware\redis\Redis-x64-3.2.100
3. 解压后的文件目录如下:
4.. cmd命令进入redis目录:D:\javasoftware\redis\Redis-x64-3.2.100
1)在redis的目录下执行(执行后就作为windows服务了)
redis-server --service-install redis.windows.conf
2) 添加开机自动启动后后需要手动启动redis
redis-server --service-start
3) 停止服务
redis-server --service-stop
4)卸载redis服务
redis-server --service-uninstall
右键计算机—》管理—》服务和应用程序—》服务:
5. 修改redis服务绑定的ip地址,找到redis解压目录编辑redis.windows.conf配置文件,在文件中搜索并找到bind关键字,如下截图:
修改图中红色箭头指向的ip地址修改其ip地址即可
6. java简单示例应用
1) 下载引进jedis所对应的版本的jar包(高版本的jar包可能对应较高的jdk版本,我是用的jedis版本为2.9.0对应的jdk版本为jdk1.8),本博客对应的下载地址:
http://download.****.net/detail/wangzihu/9893829
2) Java简单代码如下:
public static voidmain(String[] args) {
// TODOAuto-generated method stub
//连接本地的Redis服务
Jedis jedis = new Jedis("192.168.120.154");
System.out.println("连接成功");
jedis.set("runoobkey","ty");
// 获取存储的数据并输出
System.out.println("redis存储的字符串为: "+jedis.get("runoobkey"));
}
3) 如果使用redis连接池,还需要导入commons-pool2-2.4.2.jar包,下载地址:http://download.****.net/detail/wangzihu/9893832
Java代码示例:
package com.test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
importredis.clients.jedis.JedisPoolConfig;
public class RedisSource {
privatestatic JedisPool jedisPool = null;
// Redis服务器IP
private static String ADDR = "192.168.120.154";
// Redis的端口号
private static int PORT = 6379;
// 访问密码
private static String AUTH = "123456";
/**
* 初始化Redis连接池
*/
static {
try {
JedisPoolConfig config = new JedisPoolConfig();
// 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true
config.setBlockWhenExhausted(true);
// 设置的逐出策略类名, 默认DefaultEvictionPolicy(当连接超过最大空闲时间,或连接数超过最大空闲连接数)
config.setEvictionPolicyClassName("org.apache.commons.pool2.impl.DefaultEvictionPolicy");
// 是否启用pool的jmx管理功能, 默认true
config.setJmxEnabled(true);
// 最大空闲连接数, 默认8个 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。
config.setMaxIdle(8);
// 最大连接数, 默认8个
config.setMaxTotal(200);
// 表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;
config.setMaxWaitMillis(1000 * 100);
// 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
config.setTestOnBorrow(true);
jedisPool = new JedisPool(config, ADDR, PORT, 3000);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取Jedis实例
*
* @return
*/
public synchronized static Jedis getJedis() {
try {
if (jedisPool != null) {
Jedis resource =jedisPool.getResource();
return resource;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void close(final Jedis jedis) {
if (jedis != null) {
jedis.close();
}
}
public static void main(String[] args) {
Jedis jedis = RedisSource.getJedis();
//do something
// RedisSource.close(jedis);
}
}
调用获取redis对象代码示例:
import java.util.LinkedList;
import java.util.List;
import com.google.gson.Gson;
import redis.clients.jedis.Jedis;
public class RedisTest {
publicstatic void main(String[] args) {
//TODO Auto-generated method stub
Gsongson=new Gson();
Jedisjedis=RedisSource.getJedis();
// jedis.del("userInfo");
// Map<String,String>map = new HashMap<String,String>();
// map.put("name","ty");
// map.put("sex","27");
// jedis.hmset("mapInfo",map);
// System.out.println(jedis.hvals("mapInfo"));
// UserInfouser=new UserInfo();
// user.setName("天易");
// user.setSex("男");
// user.setAddr("27");
// user.setAddr("山东省临沂市河东区");
// jedis.set("userInfo",gson.toJson(user));
System.out.println(jedis.get("userInfo"));
UserInfouserList=gson.fromJson(jedis.get("userInfo").toString(),UserInfo.class);
System.out.println(userList.getAddr()+"==="+userList.getName()+"==="+jedis.exists("userInfo"));
if(jedis.exists("userInfo")){
UserInfouser=new UserInfo();
user.setName("wzh1");
user.setSex("男");
user.setAddr("27");
user.setAddr("山东省临沂市");
jedis.set("userInfo",gson.toJson(user));
}
UserInfouserList1=gson.fromJson(jedis.get("userInfo").toString(),UserInfo.class);
System.out.println(userList1.getAddr()+"==="+userList1.getName());
System.out.println(jedis.get("runoobkey"));
};
}