美文网首页
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