Redis介绍

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 }
原文地址:https://www.cnblogs.com/springcloud/p/7749511.html