zoukankan      html  css  js  c++  java
  • redis+jedis

    一、入门

    一、数据结构
        1、字符串类型:string
        2、哈希类型:hash(map格式)
        3、列表类型:list(linkedlist格式)
        4、集合类型:set(不允许重复元素)
        5、有序集合类型:sortedset(不允许重复元素,且元素按score从小到大排序)
    二、操作
        1、字符串类型(string1、存储:set key value
            2、获取:get key
            3、删除:del key
        2、哈希类型(hash)
            1、存储:hset key field value
            2、获取:
                * hget key field
                * hgetall key
            3、删除:hdel key field
        3、列表类型(list)
            1、存储:
                * lpush key value:元素从左加入列表
                * rpush key value:元素从右加入列表
            2、获取:lrange key start end:范围获取
                lrange key 0 -1:表示获取所有元素
            3、删除:
                * lpop key:从左边开始删除元素
                * rpop key:从右边开始删除元素
        4、集合类型(set1、存储:sadd key value
            2、获取:smembers key:获取set集合中所有元素
            3、删除:srem key value:删除set集合中的某个元素
        5、有序集合类型(sortedset)
            1、存储:zadd key score value
            2、获取:zrange key start end
                zrange key 0 -1 withscores:表示获取所有元素,且显示score
            3、删除:zrem key value
        6、通用命令
            1、keys *:获取所有的键
            2、type key:获取键对应的value的类型
            3、del key:删除指定的key value
    三、持久化
        1、命令
            redis-server.exe redis.windows.conf
        2、方式(配置redis.windows.conf)
            * RDB:
                save 时间(S) 存储次数
            * AOF:
                appendonly yes:(yes开启AOF、no关闭AOF)
                appendfsync always:(always每次存储执行持久化、everysec每秒执行持久化、no不进行持久化)

    二、jedis

    public class JedisPractice {
        public static void main(String[] args) {
    /*
    一、操作
        1、字符串类型(string)
            jedis.set("name", "mengmeiqi");
            String name = jedis.get("name");
            //第二个参数为过期时间(S)
            jedis.setex("wife",10,"mengmeiqi");
        2、哈希类型(hash)
            jedis.hset("person", "name", "mengmeiqi");
            jedis.hset("person", "age", "18");
            jedis.hset("person", "sex", "girl");
            jedis.hget("person", "name");
            Map<String, String> person = jedis.hgetAll("person");
            Set<String> fields = person.keySet();
            for (String field : fields) {
                System.out.println(field + ":" + person.get(field));
            }
        3、列表类型(list)
            jedis.lpush("wife", "a", "b", "c");
            jedis.rpush("wife", "a", "b", "c");
            System.out.println(jedis.lrange("wife", 0, -1));
            System.out.println(jedis.lpop("wife"));
            System.out.println(jedis.rpop("wife"));
            System.out.println(jedis.lrange("wife", 0, -1));
        4、集合类型(set)
            jedis.sadd("hasband", "kebi", "qingfeng", "wangsicong");
            Set<String> hasband = jedis.smembers("hasband");
            System.out.println(hasband);
        5、有序集合类型(sortedset)
            jedis.zadd("beautiful", 3, "huangtingting");
            jedis.zadd("beautiful", 2, "jujingyi");
            jedis.zadd("beautiful", 1, "mengmeiqi");
            Set<String> beautiful = jedis.zrange("beautiful", 0, -1);
            System.out.println(beautiful);
    二、连接池
        1、使用
            JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
            jedisPoolConfig.setMaxTotal(1000);
            jedisPoolConfig.setMaxIdle(100);
            JedisPool jedisPool = new JedisPool(jedisPoolConfig, "localhost", 6379);
            Jedis jedis = jedisPool.getResource();
            //操作数据类型
            jedis.close();
        2、配置
            #最大活动对象数
            redis.pool.maxTotal=1000
            #最大能够保持idle状态的对象数
            redis.pool.maxIdle=100
            #最小能够保持idle状态的对象数
            redis.pool.minIdle=50
            #当池内没有返回对象时,最大等待时间
            redis.pool.maxWaitMillis=10000
            #当调用borrow Object方法时,是否进行有效性检查
            redis.pool.testOnBorrow=true
            #当调用return Object方法时,是否进行有效性检查
            redis.pool.testOnReturn=true
            #“空闲链接”检测线程,检测的周期,毫秒数。如果为负值,表示不运行“检测线程”。默认为-1.
            redis.pool.timeBetweenEvictionRunsMillis=30000
            #向调用者输出“链接”对象时,是否检测他的空闲超时
            redis.pool.testWhileIdle=true
            #对于“空闲链接”检测线程而言,每次检测的链接资源的个数。默认为3.
            redis.pool.numTestsPerEvictionRun=50
            #redis服务器的ip
            redis.ip=xxx.xxx.xxx.xxx
            #redis服务器的Port
            redis.port=6379
    */
            JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
            jedisPoolConfig.setMaxTotal(1000);
            jedisPoolConfig.setMaxIdle(100);
            JedisPool jedisPool = new JedisPool(jedisPoolConfig, "localhost", 6379);
            Jedis jedis = jedisPool.getResource();
            //操作
            jedis.close();
        }
    }
  • 相关阅读:
    luogu4365 秘密袭击 (生成函数+线段树合并+拉格朗日插值)
    [模板]左偏树
    luogu4166 最大土地面积 (旋转卡壳)
    bzoj3168 钙铁锌硒维生素 (矩阵求逆+二分图最小字典序匹配)
    [模板]矩阵树定理
    [模板]快速傅里叶变换(FFT)
    [模板]Min_25筛
    [模板]杜教筛
    [模板]莫比乌斯反演
    DrawerLayout—侧拉栏的使用
  • 原文地址:https://www.cnblogs.com/linding/p/13608610.html
Copyright © 2011-2022 走看看