redis(二)----基本操作

1. redis介绍

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)

2. jar包准备

JAVA操作redis基本包:http://mvnrepository.com/artifact/redis.clients/jedis

如果需要使用redis连接池,还需要下载common-pool包:http://commons.apache.org/proper/commons-pool/download_pool.cgi

3. 程序结构目录

QQ截图20160317135618

4. 测试源码

package com.redis;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import redis.clients.jedis.Jedis;

public class MyRedis {
    private Jedis jedis;
    
    public void setup(){
        jedis = new Jedis("127.0.0.1", 6379);
    }
    
    public void inst(){
        jedis.close();
    }
    
    //清除所有数据
    public void clear(){
        Set<String> set = jedis.keys("*");
        for (String key : set) {
            jedis.del(key); //删除
        }
    }
    
    //现实所有键名和类型
    public void show(){
        Set<String> set = jedis.keys("*");
        System.out.println("当前共用"+set.size()+"个数据,分别为:");
        for (String key : set) {
            System.out.println(key+"类型为"+jedis.type(key));
        }
    }
    
    //redis处理字符串
    public void testString(){
        jedis.set("String", "LYC"); //添加数据
        System.out.println(jedis.get("String"));
        jedis.append("String", " LOVE BYQ"); //拼接字符串
        System.out.println(jedis.get("String"));
        
        jedis.mset("userName", "LYC", "passWord", "-+", "age", "28"); //添加多条
        System.out.println("userName:"+jedis.get("userName"));
        System.out.println("passWord:"+jedis.get("passWord"));
        System.out.println("age:"+jedis.get("age"));
        
        jedis.incr("age"); //加一
        System.out.println("age:"+jedis.get("age"));
        jedis.incrBy("age", 2); //加二
        System.out.println("age:"+jedis.get("age"));
        jedis.incrByFloat("age", 3.5f);
        System.out.println("age:"+jedis.get("age"));
        
    }
    
    //redis处理Map
    public void testMap(){
        Map<String, String> map = new HashMap<String, String>();
        map.put("userName", "LYC");
        map.put("passWord", "-+");
        map.put("age", "28");
        jedis.hmset("user1", map); //添加map数据
        System.out.println(jedis.hmget("user1", "userName", "passWord", "age")); //注意hmget返回的是List<String>
        jedis.hdel("user1", "passWord"); //删除map中的某个键值
        System.out.println(jedis.hmget("user1", "userName", "passWord", "age")); //注意hmget返回的是List<String>
        jedis.hset("user1", "passWord", "*#");
        System.out.println(jedis.hmget("user1", "userName", "passWord", "age")); //注意hmget返回的是List<String>
        System.out.println(jedis.hlen("user1")); //返回key为user1的键中存放的值的个数
        System.out.println(jedis.exists("user1"));//是否存在key为user1的记录
        System.out.println(jedis.hkeys("user1"));//返回map对象中的所有key  
        System.out.println(jedis.hvals("user1"));//返回map对象中的所有value
    }
    
    //redis处理List
    public void testList(){
        jedis.lpush("userList1", "张三"); //添加List数据
        jedis.lpush("userList1", "李四"); //添加List数据
        jedis.lpush("userList1", "王五"); //添加List数据
        //读取List数据。第一个是key;第二个是起始位置;第三个是结束位置, -1表示取得所有。  
        System.out.println(jedis.lrange("userList1", 0, -1)); //
    
        jedis.rpush("userList2", "张三"); //添加List数据
        jedis.rpush("userList2", "李四"); //添加List数据
        jedis.rpush("userList2", "王五"); //添加List数据
        System.out.println(jedis.lrange("userList2", 0, -1));
        
        jedis.rpush("sort", "2"); //添加List数据
        jedis.rpush("sort", "3"); //添加List数据
        jedis.rpush("sort", "1"); //添加List数据
        System.out.println(jedis.lrange("sort", 0, -1));
        jedis.sort("sort"); //排序
        System.out.println(jedis.lrange("sort", 0, -1));
    }
    
    //redis处理集合
    public void testSet(){
        jedis.sadd("userSet", "张三"); //添加set数据
        jedis.sadd("userSet", "李四"); //添加set数据
        jedis.sadd("userSet", "王五"); //添加set数据
        jedis.sadd("userSet", "某人"); //添加set数据
        System.out.println(jedis.smembers("userSet"));
        jedis.srem("userSet", "某人");
        System.out.println(jedis.smembers("userSet"));
        
        System.out.println(jedis.sismember("userSet", "赵六")); //判断 赵六 是否是userSet集合的元素  
        System.out.println(jedis.srandmember("userSet")); //随机获取集合中一个元素
        System.out.println(jedis.srandmember("userSet")); //随机获取集合中一个元素
        System.out.println(jedis.srandmember("userSet")); //随机获取集合中一个元素
        System.out.println(jedis.scard("userSet"));
    }
}
package com.redis;

public class TestMain {
    public static void main(String[] args) {
        MyRedis myRedis = new MyRedis();
        myRedis.setup();
        myRedis.clear();
        myRedis.show();
        System.out.println("------------testString------------");
        myRedis.testString();
        System.out.println("------------testMap------------");
        myRedis.testMap();
        System.out.println("------------testList------------");
        myRedis.testList();
        System.out.println("------------testSet------------");
        myRedis.testSet();
        System.out.println("------------Over------------");
        myRedis.show();
        myRedis.clear();
        myRedis.inst();
    }
}

打印结果为:

当前共用0个数据,分别为:
------------testString------------
LYC
LYC LOVE BYQ
userName:LYC
passWord:-+
age:28
age:29
age:31
age:34.5
------------testMap------------
[LYC, -+, 28]
[LYC, null, 28]
[LYC, *#, 28]
3
true
[passWord, userName, age]
[LYC, 28, *#]
------------testList------------
[王五, 李四, 张三]
[张三, 李四, 王五]
[2, 3, 1]
[2, 3, 1]
------------testSet------------
[某人, 王五, 李四, 张三]
[王五, 李四, 张三]
false
李四
张三
张三
3
------------Over------------
当前共用9个数据,分别为:
sort类型为list
userSet类型为set
String类型为string
age类型为string
user1类型为hash
userList1类型为list
userName类型为string
userList2类型为list
passWord类型为string
posted @ 2016-03-17 16:04  柚子苹果果  阅读(201)  评论(0编辑  收藏  举报