美文网首页
Redis入门

Redis入门

作者: _Colbert | 来源:发表于2020-09-19 18:28 被阅读0次

    Redis入门

    概念:redis是一款高性能的nosql(非关系型)的数据库。

    关系型数据库:mysql、oracle......

    非关系型数据库:Redis、MongoDB

    Redis的数据结构

    • Redis存储结构:key-value格式的数据。(key是字符串,value有5种不同的结构)

      • value的结构:
        1. 字符串类型 String
          1. 哈希类型 hash: map格式
          2. 列表类型 list: linkedlist格式(可以有重复元素)
          3. 集合类型 set:(不允许重复元素)
          4. 有序集合类型 sortedset(不允许重复元素且会自动排序)
    • 字符串类型 String

      1. 存储:set key value
      2. 获取:get key
      3. 删除: del key
    • 哈希 hash

      1. 存储:hset key field value

        hset myhash password 123

      2. 获取:

        • 获取指定field的值: hget key field value

          hget myhash password

        • 获取所有的hash:hgetall filed

          hgetall myhash

      3. 删除: hdel key field

    • 列表类型 list(可以将一个元素添加到列表的左边或者右边):

      1. 添加:
        • lpush key value(将元素添加到列表的左边)
        • rpush key value(将元素添加到列表的右边)
      2. 获取:
        • lrange key start end(范围获取)
      3. 删除:
        • lpop key: 删除列表最左边的元素,并将元素返回
        • rpop key: 删除列表最右边的元素,并将元素返回
    • 集合类型 set (不允许重复元素):

      1. 添加: sadd key value
      2. 获取: smember key: 获取set集合中所有的元素
      3. 删除: srem key value: 删除set集合中的某个元素
    • 有序集合 sorted set (不允许重复元素且元素有序)

      1. 添加: zadd key score value
      2. 获取: zrange key start end
      3. 删除: zren key value
    • 通用命令:

      1. keys * : 查询所有的键
      2. type key : 获取指定键的类型
      3. del key:删除指定的key value

    持久化

    1. Redis 是一个内存数据库,当Redis服务器重启后,数据会丢失

    2. Redis持久化机制

      • RDB :默认方式

        每隔一段时间去检测key的变化情况,然后持久化数据

        编辑redis.windows.conf来配置持久化的方案

        after 900 sec (15 min) if at least 1 key changed

        save 900 1

        after 300 sec (5 min) if at least 10 keys changed

        save 300 10

        after 60 sec if at least 10000 keys changed

        save 60 10000

    • AOF:日志记录的方式,可以记录每一条命令的操作。

    jedis

    jedis是Java操作Redis的一个工具,类似于jdbc操作mysql

    public class JedisTest {
    
        @Test
        public void test1(){
             // 1.获取连接(不传参数的话默认就是localhost 6379)
            Jedis jedis = new Jedis("localhost", 6379);
    
            // 操作
            jedis.set("username", "lisi");
    
            Map<String, String> map = new HashMap<String, String>();
            map.put("username", "colbert");
            jedis.hset("user", map);
            System.out.println(jedis.hget("user", "username"));
    
              // 将activecode:hehe 加入redis,20秒后过期
            jedis.setex("activecode", 20, "hehe");
    
            //关闭连接
            jedis.close();
        }
    }

    相关文章

      网友评论

          本文标题:Redis入门

          本文链接:https://www.haomeiwen.com/subject/nmzeyktx.html