zoukankan      html  css  js  c++  java
  • Redis基本操作

    REmote DIctionary Server(Redis) 是一个key-value存储系统。
    它通常被称为数据结构服务器,因为值(value)可以是字符串 (String) , 哈希 (Hash) , 列表 (list) , 集合 (sets) 和 有序集合 (sorted sets) 等类型

    1.Redis 数据类型

    • key:字符串
    • value:
      • String:字符串
      • hash:map
      • list:linkedlist(列表,有序&可重复)
      • set:集合,无序&不可重复
      • sortedset:集合,自动排序

    2.Redis 基本操作

    1. String
      • 存:set key value
      • 取:get key
      • 删:del key
    2. hash(map)
      • 存:hash key field value
      • 取:hget key field , hgetall key
      • 删:hdel key field
    3. list
      • 存:lpush key value(加入左边),rpush key value(加入右边)
      • 取:lrange key start end(范围获取)
      • 删:lpop key(删左并返回),rpop key(删右并返回)
    4. set
      • 存:sadd key value
      • 取:smembers key(取所有)
      • 删:srem key value(删除某一值)
    5. sortedset(按score排序)
      • 存:zadd key score value
      • 取:zrange key start end with scores
      • 删:zren key value
    6. 通用命令
      • keys * :查所有键
      • type key:获取键对应value类型
      • del key:删除指定key value

    3.Java使用Redis

    引入依赖

    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
    </dependency>
    
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-pool2</artifactId>
        <version>2.4.2</version>
    </dependency>
    
    public class JedisTest {
        
        /**
         * 快速入门
         */
        public void test1() {
            //1. 获取连接
            Jedis jedis = new Jedis("localhost", 6379);
            //2. 操作
            jedis.set("username", "zhangsan");
            //3. 关闭连接
            jedis.close();
        }
        
        /**
         * string 数据结构操作
         */
        public void test2() {
            //1. 获取连接
            Jedis jedis = new Jedis();//如果使用空参构造,默认值 "localhost",6379端口
            
            //2. 操作
            //存储
            jedis.set("username", "zhangsan");
            //获取
            String username = jedis.get("username");
            
            //可以使用setex()方法存储可以指定过期时间的 key value
            jedis.setex("activecode", 20, "hehe");//将activecode:hehe键值对存入redis,并且20秒后自动删除该键值对
            
            //3. 关闭连接
            jedis.close();
        }
    
        /**
         * hash 数据结构操作
         */
        public void test3() {
            //1. 获取连接
            Jedis jedis = new Jedis();//如果使用空参构造,默认值 "localhost",6379端口
            
            //2. 操作
            // 存储hash
            jedis.hset("user", "name", "lisi");
            jedis.hset("user", "age", "23");
            jedis.hset("user", "gender", "female");
    
            // 获取hash
            String name = jedis.hget("user", "name");
            // 获取hash的所有map中的数据
            Map<String, String> user = jedis.hgetAll("user");
    
            // keyset
            Set<String> keySet = user.keySet();
            for (String key : keySet) {
                //获取value
                String value = user.get(key);
                System.out.println(key + ":" + value);
            }
            
            //3. 关闭连接
            jedis.close();
        }
        
        /**
         * list 数据结构操作
         */
        public void test4() {
            //1. 获取连接
            Jedis jedis = new Jedis();//如果使用空参构造,默认值 "localhost",6379端口
            
            //2. 操作
            // list 存储
            jedis.lpush("mylist", "a", "b", "c");//从左边存
            jedis.rpush("mylist", "a", "b", "c");//从右边存
    
            // list 范围获取
            List<String> mylist = jedis.lrange("mylist", 0, -1);
    
            // list 弹出
            String element1 = jedis.lpop("mylist");//c
            String element2 = jedis.rpop("mylist");//c
    
            // list 范围获取
            List<String> mylist2 = jedis.lrange("mylist", 0, -1);
    
            //3. 关闭连接
            jedis.close();
        }
    
    
        /**
         * set 数据结构操作
         */
        public void test5() {
            //1. 获取连接
            Jedis jedis = new Jedis();//如果使用空参构造,默认值 "localhost",6379端口
            
            //2. 操作
            // set 存储
            jedis.sadd("myset", "java", "php", "c++");
    
            // set 获取
            Set<String> myset = jedis.smembers("myset");
    
            //3. 关闭连接
            jedis.close();
        }
    
        /**
         * sortedset 数据结构操作
         */
        public void test6() {
            //1. 获取连接
            Jedis jedis = new Jedis();//如果使用空参构造,默认值 "localhost",6379端口
            
            //2. 操作
            // sortedset 存储
            jedis.zadd("mysortedset", 3, "亚瑟");
            jedis.zadd("mysortedset", 30, "后裔");
            jedis.zadd("mysortedset", 55, "孙悟空");
    
            // sortedset 获取
            Set<String> mysortedset = jedis.zrange("mysortedset", 0, -1);
            
            //3. 关闭连接
            jedis.close();
        }
    
        /**
         * jedis连接池使用
         */
        public void test7() {
            //0.创建一个配置对象
            JedisPoolConfig config = new JedisPoolConfig();
            config.setMaxTotal(50); //最大连接数
            config.setMaxIdle(10);  //最大闲置个数
    
            //1.创建Jedis连接池对象
            JedisPool jedisPool = new JedisPool(config, "localhost", 6379);
    
            //2.获取连接
            Jedis jedis = jedisPool.getResource();
            
            //3. 使用
            jedis.set("hehe", "heihei");
            
            //4. 关闭 归还到连接池中
            jedis.close();
        }
    }
    
  • 相关阅读:
    JAVA AES加密算法实现代码
    JAVA BASE64 加密解密实现代码
    eclipseLuna (4.4.0) 安装velocity 插件
    NIO中的Buffer
    Oracle死锁处理
    DWR、Comet4j在Nginx+Tomcat组合下的优化
    网站已运行时间代码
    常用DB2命令
    DB2分页查询简单示例
    comet4j推送 405/500 JSON转换异常
  • 原文地址:https://www.cnblogs.com/loveer/p/11315703.html
Copyright © 2011-2022 走看看