zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    DBSCAN算法及sklearn实现
    K-MEANS算法及sklearn实现
    Linux删除有规则文件夹,比如(50-100)
    11.tensorboard网络结构
    10.优化器
    9.正则化
    8.Dropout
    Linux中awk后面的RS, ORS, FS, OFS 含义
    hadoop 客户的的使用
    shell中的>&1和 >&2是什么意思?
  • 原文地址:https://www.cnblogs.com/springcloud/p/7749511.html
Copyright © 2011-2022 走看看