Redis(一) 简单安装介绍、测试存储

Redis(一) 简单安装介绍、测试存储

  共同学习,不对的地方请指出,一起探讨!

    1. 是一种key-value型存储的缓存服务器,又是一个nosql数据库服务器。

    2. 存储数据多样 无列的概念。能存Stringlistsethashes等等,支持主从复制,自动重连等等。

    3.用作缓存、近似于memcached,也可作为nosql数据库应用,读写速度快,满足高并发需求

    4. JedisPool;在不同的线程中使用相同的Jedis实例会发生奇怪的错误。但是创建太多的实现也不好因为这意味着会建立很多sokcet连接,也会导致奇怪的错误发生。 单一Jedis实例不是线程安全的。为了避免这些问题,可以使用JedisPool, JedisPool是一个线程安全的网络连接池。可以用JedisPool创建一些可靠Jedis实例,可以从池中拿到Jedis的实例。这种方式可以解 决那些问题并且会实现高效的性能.

    5.缺点,做为noslq数据库应用时,读写性能,受物理内存的限制。

 

一、Redis安装启动


1.安装

   下载 redis-3.0.5.tar.gz  --------  解压  tar -zxvf 到相应文件夹 ---------  编译make 

 

2.配置文件 解压目录下 redis.conf

 

3.启动  解压目录的src   ./redis-server 启动  默认端口为 6379

 

4.客户端启动  解压目录的src ./redis-cli 


eg: 简单的getset测试

 1.解压安装目录
 

 

 

2. src 下启动
 


3. 客户端 启用 并测试
 


4.关闭redis。直接kill shutdown 都可

 

二、java 简单操作Redis存取(jedis

 

1. 附上maven依赖

 

               <dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
			<version>2.2.1</version>
		</dependency>

 2. 简单测试

        private static String ip = "192.168.1.118";
	
	private static int port = 6379;
	
	
	/****
	 * 创建一个jedis实例
	 * 
	 * set 放值 get取值 key-Value 形式 类似于Map
	 * 
	 */
	@Test
	public void test1() {
		Jedis j = null;
		try{
			j = new Jedis(ip, port);
			j.set("key1", "value111");
			j.set("key2", "第二个值");
			j.set("key3", "0");
			j.incr("key3");//递增
			logger.info("------1---:{}", j.get("key1"));
			logger.info("------2---:{}", j.get("key2"));
			logger.info("------3---:{}", j.get("key3"));
		}catch(Exception e){
			logger.info("Exception---:{}",e.getMessage());
		}finally{
			if(j!=null)
		           j.disconnect();//释放连接
		}
	}

 

3.使用JedisPool 简单测试

        @Test
	public void test3() {
		JedisPoolConfig jpl = new JedisPoolConfig();
		// 设置一个JedisPool最多可分配多少个jedis实例,可通过JedisPool.getResource()来获取,
		//设置为-1表示不限制,如果JedisPool已经分配了MaxActive,则此时该jedisPool的状态为exhausted(耗尽)
		jpl.setMaxTotal(50000);
		//设置最大空闲实例数
		jpl.setMaxIdle(5);
		//表示引用一个jedis实例时,最大等待时间,如果超出,则抛出JedisConnectionException;
		jpl.setMaxWaitMillis(1000*60*5);
		//表示在引用一个jedis实例时,是否进行验证操作,为true表示得到的实例都是可用的
		jpl.setTestOnBorrow(true);
		JedisPool jp = new JedisPool(jpl,ip,port);
		Jedis j = null;
		try{
		 long start = System.currentTimeMillis();
		 logger.info("使用连接池递增开始时间:{}",start);
		 for(int i =0;i<10000;i++){
			 j = jp.getResource();
			 j.incr("key3");
		 }
		 long end = System.currentTimeMillis();
		 logger.info("使用连接池递增结束时间:{}",end);
		 logger.info("耗时:{}",end-start);
		}catch(Exception e){
			logger.info("Exception---:{}",e.getMessage());
		}finally{
			if(j!=null)
				jp.returnResource(j); //放回连接连接池
		}
	}

 

参考:

 

  http://www.aboutyun.com/thread-9223-1-1.html     Redis介绍

 

  http://www.linuxidc.com/Linux/2011-02/32700.htm   Redis介绍

 

  http://blog.csdn.net/freebird_lb/article/details/7733970  Redis学习入门篇

 

  http://www.cnblogs.com/linjiqin/archive/2013/06/14/3135248.html  连接池配置及介绍

 

 

 

猜你喜欢

转载自tablemiao.iteye.com/blog/2266175
今日推荐