-
redis安装与开发;redis是一种非关系型数据库,可以永久保存数据在磁盘内存中。一般可以作为保存系统缓存的一种的数据库搭载工具,安打开装完成后启动redis.server。然后打开cmd命令窗口。可以输入redis一系列命令行。
-
redis服务端端口号:6379。
-
redis可以储存的数据类型,hash,string,列表,集合,有序集合。
-
一般存储是用Jedis jedis=new Jedis(“127.0.0.1”,6379);来创建对象,然后如果要存储字符串直接用jedis .set(“test”,”testString”);后面如果要获取testString的value值,直接用get(“test”)就可以获取testString的value值;
-
如果定义集群式redis客户端,需要用到shardedJedis,需要用到多机环境。
-
如果需要开发redis集群开发,需要对redis集群开发进行配置。需要创建JedisPoolConfig对象。然后设置最大连接数。JedisPoolConfig.setMaxTotal(50);用jedisPoolConfig设置最大的连接数。
-
定义集群信息,用JedisSharedInfo shards=new JedisSharedInfo();并且定义多个redis端口。定义集群List<JedisSharedInfo> list=new ArrayList<JedisSharedInfo>();list.add(new JedisShredInfo(“127.0.0.1”,6379));创建多个端口信息。JedisSharedInfo是用来设置redis集群端口信息的。
-
定义redis连接池pool。定义好端口信息之后,然后把配置的信息及端口的信息端口丢到连接池中。
-
ShardedJedisPool pool=new ShardedJedisPool(poolConfig,shards);如果需要存入到redis数据库中,需要拿到Jedis,shardedJedis,或者jediscluster对象才能存储数据。sharededJedis是属于轻量级集群redis对象。Shardedjedis=pool.getResource();可以通过这种方式创建shardedJedis对象。然后执行set方法存储数据到shardedJedis对象中。
-
配置完成集群端口之后。可以封装redis作为专门的借口工具,定义set方法和get方法。设置生存时间。及删除键方法,可以根据时间来删除保存在redis里面的数据。
-
定义set方法,get方法。Del方法。直接删除键就可以了。
-
Redis集群代码示例;
-
//设置连接池的相关配置
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(2);
poolConfig.setMaxIdle(1);
poolConfig.setMaxWaitMillis(2000);
poolConfig.setTestOnBorrow(false);
poolConfig.setTestOnReturn(false);//设置Redis信息
String host = "127.0.0.1";
JedisShardInfo shardInfo1 = new JedisShardInfo(host, 6379, 500);
shardInfo1.setPassword("test123");
JedisShardInfo shardInfo2 = new JedisShardInfo(host, 6380, 500);
shardInfo2.setPassword("test123");
JedisShardInfo shardInfo3 = new JedisShardInfo(host, 6381, 500);
shardInfo3.setPassword("test123");//初始化ShardedJedisPool
List<JedisShardInfo> infoList = Arrays.asList(shardInfo1, shardInfo2, shardInfo3);
ShardedJedisPool jedisPool = new ShardedJedisPool(poolConfig, infoList);//进行查询等其他操作
ShardedJedis jedis = null;
try {
jedis = jedisPool.getResource();
jedis.set("test", "test");
jedis.set("test1", "test1");
String test = jedis.get("test");
System.out.println(test);
......
} finally {
//使用后一定关闭,还给连接池
if(jedis!=null) {
jedis.close();
}
}
ShardedJedis jedis = jedisPool.getResource();
jedis.set("cnblog", "cnblog");
jedis.set("redis", "redis");
jedis.set("test", "test");
jedis.set("123456", "1234567");
Client client1 = jedis.getShard("cnblog").getClient();////获取端口
Client client2 = jedis.getShard("redis").getClient();
Client client3 = jedis.getShard("test").getClient();
Client client4 = jedis.getShard("123456").getClient();
////打印key在哪个server中
System.out.println("cnblog in server:" + client1.getHost() + " and port is:" + client1.getPort());
System.out.println("redis in server:" + client2.getHost() + " and port is:" + client2.getPort());
System.out.println("test in server:" + client3.getHost() + " and port is:" + client3.getPort());
System.out.println("123456 in server:" + client4.getHost() + " and port is:" + client4.getPort());
转载于:https://my.oschina.net/zhanggc/blog/1605156