简介

  • 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
      
    • 示例 ```bash redis 127.0.0.1:6379> CONFIG GET loglevel

1) “loglevel” 2) “notice”

1
2
3
4
5
6
7
   + 使用 * 号获取所有配置项:

+ 编辑配置
  + 你可以通过修改 redis.conf 文件或使用 CONFIG set 命令来修改配置。
  + CONFIG SET 命令基本语法:
```bash
redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
  • 实例 ```bash redis 127.0.0.1:6379> CONFIG SET loglevel “notice” OK redis 127.0.0.1:6379> CONFIG GET loglevel

1) “loglevel” 2) “notice”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

## Redis 数据类型

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

+ String(字符串)
  + string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。
  + string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
  + string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
  + 实例
```bash
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
    • 实例 ```bash 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”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
   + 注意:以上实例中 rabbitmq 添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。

+ zset(sorted set:有序集合)
  + Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
  + 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序
  + zset的成员是唯一的,但分数(score)却可以重复。
  + zadd 命令
    + 添加元素到集合,元素在集合中存在则更新对应score
    + zadd key score member 
  + 实例
```bash
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"