标签:pre hash 调用 两种 maven set 读写 关闭 new
Redis 介绍
Redis是REmote DIctionary Server(远程字典服务器)的缩写,它以字典结构(key-value键值对结构)存储数据,并允许其他应用通过TCP协议读写字典中的内容。所以,redis是一个key-value存储系统,或者说是一个key-value数据库。
Redis是用C语言开发的,并提供了几十种不同编程语言的客户端库,即我们用java语言也可以操作redis。这种字典形式的存储结构与常见的MySQL 等关系数据库的二维表形式的存储结构有很大的差异。关系型数据库存储的数据都是结构化数据Redis字典结构(k-v)的存储方式使得开发者可以将程序中的数据直接映射到Redis中,数据在Redis中的存储形式和其在程序中的存储方式非常相近。使用Redis的另一个优势是其对不同的数据类型提供了非常方便的操作方式,如使用集合类型存储文章标签,Redis可以对标签进行如交集、并集这样的集合运算操作。Redis存储数据的介质是内存,所以可以提供高效的读取。所以,redis数据库,我们也称之为非关系型数据库(Nosql)。而mysql,oracle等数据库称之为关系型数据库。这两种类型的数据库,没有优劣之分,看具体的应用场景。
Redis的内存存储和持久化Redis数据库中的所有数据都存储在内存中。由于内存的读写速度远快于硬盘,因此Redis在性能上对比其他基于硬盘存储的数据库有非常明显的优势,在一台普通的笔记本电脑上,edis可以在一秒内读写超过十万个键值。将数据存储在内存中也有问题,例如,程序退出后内存中的数据会丢失。不过 Redis提供了对持久化的支持,即将可以内存中的数据异步写入到硬盘中,同时不影响继续提供服务。
实现步骤:
1.下载Jedis依赖jar包
2.在maven工程里,建立测试类
3.调用Jedis的API
/*
* 测试连接和插值
* 注意:1.关闭虚拟机的防火墙或代开指定的端口,比如6379
*/
@Test
public void testConnect_Set(){
Jedis jedis=new Jedis("192.168.234.231", 6379);
jedis.set("name","tom");
jedis.close();
}
/*
* 测试利用Jedis实现Redis的分片,底层用的是一致性hash算法来实现的。
* 所以可以更好的满足数据的单调性和平衡性
*
*/
@Test
public void testShard(){
JedisPoolConfig config=new JedisPoolConfig();
List<JedisShardInfo> serverList=new ArrayList<>();
serverList.add(new JedisShardInfo("192.168.234.231",6379));
serverList.add(new JedisShardInfo("192.168.234.231",6380));
ShardedJedisPool pool=new ShardedJedisPool(config, serverList);
ShardedJedis jedis=pool.getResource();
for(int i=0;i<1000;i++){
jedis.set(i+"",i+"");
}
//用完后将jedis 连接还到池子
pool.returnResource(jedis);
}
}
1 /** 2 * 测试利用Jedis操作redis服务 3 * @author 4 * 5 */ 6 public class redis{ 7 /* 8 * 测试连接和插值 9 * 注意:1.关闭虚拟机的防火墙或代开指定的端口,比如6379 10 */ 11 @Test 12 public void testConnect_Set(){ 13 Jedis jedis=new Jedis("192.168.234.231", 6379); 14 jedis.set("name","tom"); 15 16 jedis.close(); 17 } 18 19 /* 20 * 测试利用Jedis实现Redis的分片,底层用的是一致性hash算法来实现的。 21 * 所以可以更好的满足数据的单调性和平衡性 22 * 23 */ 24 @Test 25 public void testShard(){ 26 JedisPoolConfig config=new JedisPoolConfig(); 27 28 List<JedisShardInfo> serverList=new ArrayList<>(); 29 30 serverList.add(new JedisShardInfo("192.168.234.231",6379)); 31 serverList.add(new JedisShardInfo("192.168.234.231",6380)); 32 33 ShardedJedisPool pool=new ShardedJedisPool(config, serverList); 34 35 ShardedJedis jedis=pool.getResource(); 36 37 for(int i=0;i<1000;i++){ 38 jedis.set(i+"",i+""); 39 } 40 //用完后将jedis 连接还到池子 41 pool.returnResource(jedis); 42 43 } 44 45 }
标签:pre hash 调用 两种 maven set 读写 关闭 new
原文地址:http://www.cnblogs.com/springcloud/p/7749511.html