欢迎投稿

今日深度:

Redis学习笔记,

Redis学习笔记,


redis学习笔记(1)

最近由于项目的实际需要,对当前比较流行的两款“缓存数据库”进行了学习,主要了解了redis数据库。

redis和mc的对比


1、redis可以用于数据的长期存储(这点是基于它的“持久化”技术),同时也可以用来做数据缓存;但是mc(memcached)只能用于数据缓存;
2、redis能够存储种类繁多的数据类型,比如: strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries。而mc只能存储strings, objects;
3、两者都可以用于集群环境,存储数据都采用key-value策略,都是Nosql数据库典型代表。

redis的安装


Created with Raphaël 2.1.0开始下载安装包(wget)解压安装包(tar zxvf)进入解压压缩包(cd)进行安装测试(make test)根据需要(yum install tcl)make install指定安装路径bin(cp ...redis.conf ./redis.conf ./)结束

redis的基础命令使用


目前主要学习了redis的string操作、list链表操作

String

List

java-redis


在实际运用中,不仅仅需要学会在终端通过敲入命令的方式学习redis,还需要知道redis的API,用于编程,下面是我写的一个初级demo,主要测试上述两种数据结构:

package cn.com.redis;

import java.util.List;
import java.util.Set;

import redis.clients.jedis.Jedis;

public class RedisJava {

    public static void main(String[] args) {
        // 连接redis服务
        Jedis jedis = new Jedis("192.168.239.128", 6379);
        // 查看服务是否运行
        System.out.println("Server is running: " + jedis.ping());
        redisStringAndLsit(jedis);
        selectDB(jedis);
        flushRedis(jedis);
    }

    private static void flushRedis(Jedis jedis) {
        System.out.println("清库前,redis数据库的所有key:");
        Set<String> allKeys = jedis.keys("*");

        for(String temp : allKeys){
            System.out.println(temp);
        }
        System.out.println(jedis.flushDB());
        System.out.println("清库后,redis数据库的所有key的长度为:");
        Set<String> allKeysEnd = jedis.keys("*");
        System.out.println(allKeysEnd);
        System.out.println(allKeysEnd.size());
    }

    private static void selectDB(Jedis jedis) {
        String selector = jedis.select(1);
        if(selector.equals("OK")){
            System.out.println("选库成功!");
        }
        Set<String> keys = jedis.keys("*");
        System.out.println(keys.size());
        //跳转的数据库没有key则跳到默认数据库,并移动一个key
        if(keys.size()==0){
            if(jedis.select(0).equals("OK")){
                jedis.move(jedis.keys("*").iterator().next(), 1);
            }   
        }
        jedis.select(1);
        Set<String> keysEnd = jedis.keys("*");
        System.out.println("数据库1中key的数量最后是:"+keysEnd.size());
        System.out.println("被转移过来的key分别是: ");
        for(String temp : keysEnd){
            System.out.println(temp);
        }
    }

    private static void redisStringAndLsit(Jedis jedis) {
        jedis.set("name", "wuran");
        // linklist
        jedis.rpush("character", "a");
        jedis.rpush("character", "b");
        jedis.rpush("character", "c");
        jedis.rpush("character", "d");
        List<String> values=jedis.lrange("character", 0, -1);
        for(String temp : values){
            System.out.println(temp);
        }
        System.out.println("*********keys * **********");
        Set<String> keySets = jedis.keys("*");
        for(String key : keySets){
            System.out.println(key);
        }
        System.out.println(jedis.get("name"));
        //体现缓存数据库
        System.out.println("before expire: "+jedis.ttl("name"));
        jedis.expire("name", 30);
        for(int i=0;i<30;i++){
            System.out.println(jedis.ttl("name"));
            if(i==10){
                jedis.persist("name");
                System.out.println("when i is 10: "+jedis.ttl("name"));
                break;
            }
        }
        System.out.println(jedis.get("name"));
    }

}

www.htsjk.Com true http://www.htsjk.com/redis/32028.html NewsArticle Redis学习笔记, redis学习笔记(1) 最近由于项目的实际需要,对当前比较流行的两款“缓存数据库”进行了学习,主要了解了redis数据库。 redis和mc的对比 1、redis可以用于数据的长期存...
相关文章
    暂无相关文章
评论暂时关闭