0%

1_2_菜鸟教程

简介

  • redis相关笔记

ubuntu apt 命令安装

  • 在 Ubuntu 系统安装 Redis 可以使用以下命令:

    1
    2
    sudo apt update
    sudo apt install redis-server
  • 启动 Redis

    1
    redis-server
  • 查看 redis 是否启动?

    1
    redis-cli
  • 以上命令将打开以下终端:

    1
    redis 127.0.0.1:6379>
  • 127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。

    1
    2
    redis 127.0.0.1:6379> ping
    PONG
  • 以上说明我们已经成功安装了redis。

Redis配置

Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf(Windows 名为 redis.windows.conf)。

你可以通过 CONFIG 命令查看或设置配置项。

  • 语法

    • Redis CONFIG 命令格式如下:
      1
      redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME
    • 示例
      1
      2
      3
      4
      redis 127.0.0.1:6379> CONFIG GET loglevel

      1) "loglevel"
      2) "notice"
    • 使用 * 号获取所有配置项:
  • 编辑配置

    • 你可以通过修改 redis.conf 文件或使用 CONFIG set 命令来修改配置。
    • CONFIG SET 命令基本语法:
      1
      redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
    • 实例
      1
      2
      3
      4
      5
      6
      redis 127.0.0.1:6379> CONFIG SET loglevel "notice"
      OK
      redis 127.0.0.1:6379> CONFIG GET loglevel

      1) "loglevel"
      2) "notice"

Redis 数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

  • String(字符串)

    • string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
    • string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
    • string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
    • 实例
      1
      2
      3
      4
      redis 127.0.0.1:6379> SET runoob "菜鸟教程"
      OK
      redis 127.0.0.1:6379> GET runoob
      "菜鸟教程"
    • 在以上实例中我们使用了 Redis 的 SET 和 GET 命令。键为 runoob,对应的值为 菜鸟教程。
    • 注意:一个键最大能存储 512MB。
  • Hash(哈希)

    • Redis hash 是一个键值(key=>value)对集合。
    • Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
    • 实例
      1
      2
      3
      4
      5
      6
      7
      redis 127.0.0.1:6379> DEL runoob
      redis 127.0.0.1:6379> HMSET runoob field1 "Hello" field2 "World"
      "OK"
      redis 127.0.0.1:6379> HGET runoob field1
      "Hello"
      redis 127.0.0.1:6379> HGET runoob field2
      "World"
    • 实例中我们使用了 Redis HMSET, HGET 命令,HMSET 设置了两个 field=>value 对, HGET 获取对应 field 对应的 value
  • List(列表)

    • Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
    • 实例
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      redis 127.0.0.1:6379> DEL runoob
      redis 127.0.0.1:6379> lpush runoob redis
      (integer) 1
      redis 127.0.0.1:6379> lpush runoob mongodb
      (integer) 2
      redis 127.0.0.1:6379> lpush runoob rabbitmq
      (integer) 3
      redis 127.0.0.1:6379> lrange runoob 0 10
      1) "rabbitmq"
      2) "mongodb"
      3) "redis"
      redis 127.0.0.1:6379>
  • Set(集合)

    • Redis 的 Set 是 string 类型的无序集合。
    • 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
    • sadd 命令
      • 添加一个 string 元素到 key 对应的 set 集合中,成功返回 1,如果元素已经在集合中返回 0。
      • sadd key member
    • 实例
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      redis 127.0.0.1:6379> DEL runoob
      redis 127.0.0.1:6379> sadd runoob redis
      (integer) 1
      redis 127.0.0.1:6379> sadd runoob mongodb
      (integer) 1
      redis 127.0.0.1:6379> sadd runoob rabbitmq
      (integer) 1
      redis 127.0.0.1:6379> sadd runoob rabbitmq
      (integer) 0
      redis 127.0.0.1:6379> smembers runoob

      1) "redis"
      2) "rabbitmq"
      3) "mongodb"
    • 注意:以上实例中 rabbitmq 添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。
  • zset(sorted set:有序集合)

    • Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
    • 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序
    • zset的成员是唯一的,但分数(score)却可以重复。
    • zadd 命令
      • 添加元素到集合,元素在集合中存在则更新对应score
      • zadd key score member
    • 实例
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      redis 127.0.0.1:6379> DEL runoob
      redis 127.0.0.1:6379> zadd runoob 0 redis
      (integer) 1
      redis 127.0.0.1:6379> zadd runoob 0 mongodb
      (integer) 1
      redis 127.0.0.1:6379> zadd runoob 0 rabbitmq
      (integer) 1
      redis 127.0.0.1:6379> zadd runoob 0 rabbitmq
      (integer) 0
      redis 127.0.0.1:6379> ZRANGEBYSCORE runoob 0 1000
      1) "mongodb"
      2) "rabbitmq"
      3) "redis"
感谢老板支持!敬礼(^^ゞ