windows下使用redis 2.8

本文详细介绍了Redis的安装、启动与基本操作,并通过Java环境下的实例展示了如何使用Jedis库来操作Redis数据结构,包括字符串、列表、集合、哈希等。

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave。


一、安装Redis

1、官网地址:http://redis.io/download

2、github下载地址:https://github.com/MSOpenTech/redis/releases

3、下载完毕直接解压到硬盘位置即可

二、启动Redis

1、使用命令方式启动服务器

redis-server.exe redis.windows.conf

如下图:

103711_3iMv_112937.jpg

注意保持上面的窗口不被关闭,否则服务器就会关闭停止无法进行测试。

2、测试Redis

使用命令

redis-cli.exe -h 127.0.0.1 -p 6379

如下:

104108_IGgL_112937.jpg

新开一个窗口同样进行测试

104151_4Uq3_112937.jpg

三、JAVA环境下测试 参考:http://flychao88.iteye.com/blog/1527163

1、创建maven项目 redisDemo

2、引入jar

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

3、

package com.xh.test;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.junit.Before;
import org.junit.Test;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class RedisTest {

	private JedisPool pool;
	private Jedis jedis;
	
	@Before
	public void setUp(){
		pool = new JedisPool(new JedisPoolConfig(),"127.0.0.1");	
		jedis = pool.getResource();		
	}
	
	@Test
	public void get(){
		System.out.println("获取缓存:"+jedis.get("userName"));
		System.out.println("获取缓存:"+jedis.get("address"));
	}
	
	/**
	 * 存储基础的字符串数据
	 */
	@Test
	public void saveString(){
		// 1.1 添加数据
		jedis.set("name", "枫景科技");
		System.out.println("获取1:"+jedis.get("name"));
		
		// 1.2.1  修改数据
		jedis.append("name", "有限公司");
		System.out.println("获取2:"+jedis.get("name"));
		
		// 1.2.1  覆盖
		jedis.set("name", "枫景科技集团");
		System.out.println("获取3:"+jedis.get("name"));
		
		// 1.3 删除对应记录
		jedis.del("name");
		System.out.println("获取4:"+jedis.get("name"));
		
		// 1.4 mset
		jedis.mset("qq","123456","email","123@163.com");
		System.out.println("获取5:"+jedis.mget("qq","email"));
	}
	
	/**
	 *  操作map数据
	 */
	@Test
	public void saveMap(){
		 Map<String,String> user=new HashMap<String,String>();  
		 user.put("name","hanfeng");  
	     user.put("pwd","123456");  
	     jedis.hmset("user", user);
	     List<String> rsmap = jedis.hmget("user", "name");  
	     System.out.println(rsmap);  
	     
//	     jedis.hdel("user","pwd");
	     System.out.println(jedis.hmget("user", "name"));
	     System.out.println(jedis.hmget("user", "pwd"));
	     System.out.println(jedis.hlen("user"));
	     System.out.println(jedis.exists("user"));
	     System.out.println(jedis.hkeys("user"));
	     System.out.println(jedis.hvals("user"));
	     
	     Iterator<String> iterator = jedis.hkeys("user").iterator();
	     while (iterator.hasNext()) {
	    	 String key = iterator.next();
	    	 System.out.println(key+":"+jedis.hmget("user",key));  
		}
	}
	
	/** 
     * jedis操作Set 
     */  
    @Test  
    public void testSet(){  
        //添加  
        jedis.sadd("sname","张三");  
        jedis.sadd("sname","李四");  
        jedis.sadd("sname","王五");  
        jedis.sadd("sname","赵六");  
        //移除noname  
//        jedis.srem("sname","noname");  
        System.out.println(jedis.smembers("sname"));//获取所有加入的value  
        System.out.println(jedis.sismember("sname", "张三"));//判断 minxr 是否是sname集合的元素  
        System.out.println(jedis.srandmember("sname"));  
        System.out.println(jedis.scard("sname"));//返回集合的元素个数  
    }  
  
    @Test  
    public void test() throws InterruptedException {  
        //keys中传入的可以用通配符  
        System.out.println(jedis.keys("*")); //返回当前库中所有的key  [sose, sanme, name, jarorwar, foo, sname, java framework, user, braand]  
        System.out.println(jedis.keys("*name"));//返回的sname   [sname, name]  
        System.out.println(jedis.del("sanmdde"));//删除key为sanmdde的对象  删除成功返回1 删除失败(或者不存在)返回 0  
        System.out.println(jedis.ttl("sname"));//返回给定key的有效时间,如果是-1则表示永远有效  
        jedis.setex("timekey", 10, "min");//通过此方法,可以指定key的存活(有效时间) 时间为秒  
        Thread.sleep(5000);//睡眠5秒后,剩余时间将为<=5  
        System.out.println(jedis.ttl("timekey"));   //输出结果为5  
        jedis.setex("timekey", 1, "min");        //设为1后,下面再看剩余时间就是1了  
        System.out.println(jedis.ttl("timekey"));  //输出结果为1  
        System.out.println(jedis.exists("key"));//检查key是否存在  
        System.out.println(jedis.rename("timekey","time"));  
        System.out.println(jedis.get("timekey"));//因为移除,返回为null  
        System.out.println(jedis.get("time")); //因为将timekey 重命名为time 所以可以取得值 min  
  
        //jedis 排序  
        //注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的)  
        jedis.del("a");//先清除数据,再加入数据进行测试  
        jedis.rpush("a", "1");  
        jedis.lpush("a","6");  
        jedis.lpush("a","3");  
        jedis.lpush("a","9");  
        System.out.println(jedis.lrange("a",0,-1));// [9, 3, 6, 1]  
        System.out.println(jedis.sort("a")); //[1, 3, 6, 9]  //输入排序后结果  
        System.out.println(jedis.lrange("a",0,-1));  
  
    }  
}


转载于:https://my.oschina.net/ihanfeng/blog/376626

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值