HacKerQWQ的博客空间

redis的基本操作笔记

Word count: 1.2kReading time: 5 min
2020/11/09 Share

Redis介绍

REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

Redis启动/停止服务

redis-server

开启redis

1
2
3
4
service redis stop
/etc/init.d/redis-server stop
redis-cli -a 123456 shutdown
kill -9 redis进程id

关闭redis

Redis连接

  • 连接到主机为127.0.0.1,端口为6379,密码为pass的服务器上
    1
    redis-cli -h 127.0.0.1 -p 6379 -a "pass"
  • 查看是否设置了密码验证
    1
    2
    3
    4

    127.0.0.1:6379> CONFIG get requirepass
    1) "requirepass"
    2) ""
  • 设置密码
    1
    2
    3
    4
    5
    127.0.0.1:6379> CONFIG set requirepass "runoob"
    OK
    127.0.0.1:6379> CONFIG get requirepass
    1) "requirepass"
    2) "runoob"
  • 设置密码之后,之后每次涉及权限比较高的操作时就需要验证密码
    1
    127.0.0.1:6379> AUTH "pass"

    Redis数据类型

    Redis数据类型分为:string(字符串),hash(哈希),list(列表),set(集合)以及zset(有序集合)

    string(字符串)

    string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
    string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
    一个key对应一个value
  • *语法**
    1
    redis 127.0.0.1:6379> COMMAND KEY_NAME
  • *实例**
    1
    2
    3
    4
    redis 127.0.0.1:6379> SET runoob "菜鸟教程"
    OK
    redis 127.0.0.1:6379> GET runoob
    "菜鸟教程"
    SET创建KEY,GET获取KEY
    https://www.runoob.com/redis/redis-strings.html

    Hash(哈希)

    Redis hash 是一个键值(key=>value)对集合。

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
DEL用于删除前面创建的key,不然再次创建会报错

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"

HMSET设置键值对,HGET获取field对应的value
每个 hash 可以存储 232 -1 键值对(40多亿)。
https://www.runoob.com/redis/redis-hashes.html

List(列表)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

1
2
3
4
5
6
7
8
9
10
11
redis 127.0.0.1:6379> LPUSH runoobkey redis
(integer) 1
redis 127.0.0.1:6379> LPUSH runoobkey mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH runoobkey mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE runoobkey 0 10

1) "mysql"
2) "mongodb"
3) "redis"

LPUSH将元素放到列表头,LRANGE读取列表的范围
https://www.runoob.com/redis/redis-lists.html

Set(集合)

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
实例

1
2
3
4
5
6
7
8
9
10
11
12
13
redis 127.0.0.1:6379> SADD runoobkey redis
(integer) 1
redis 127.0.0.1:6379> SADD runoobkey mongodb
(integer) 1
redis 127.0.0.1:6379> SADD runoobkey mysql
(integer) 1
redis 127.0.0.1:6379> SADD runoobkey mysql
(integer) 0
redis 127.0.0.1:6379> SMEMBERS runoobkey

1) "mysql"
2) "mongodb"
3) "redis"

SADD向集合插入元素,SMEMBERS返回集合的所有成员
https://www.runoob.com/redis/redis-sets.html

sorted set(有序集合)

Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。
实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
redis 127.0.0.1:6379> ZADD runoobkey 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD runoobkey 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE runoobkey 0 10 WITHSCORES

1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"

ZADD向有序集合中添加一个或多个成员,ZRANGE返回索引区间内的成员
https://www.runoob.com/redis/redis-sorted-sets.html

Redis数据备份与恢复

备份

1
redis 127.0.0.1:6379> SAVE 

该命令将数据保存到redis安装目录下的dump.rdb文件内

恢复

如需恢复数据只需将备份文件(dump.rdb)移动到redis安装目录启动服务,可以通过以下命令得到安装目录

1
2
3
redis 127.0.0.1:6379> CONFIG GET dir
1) "dir"
2) "/usr/local/redis/bin"

更多信息看菜鸟教程

https://www.runoob.com/redis/redis-tutorial.html

CATALOG
  1. 1. Redis介绍
  2. 2. Redis启动/停止服务
  3. 3. Redis连接
  4. 4. Redis数据类型
    1. 4.1. string(字符串)
    2. 4.2. Hash(哈希)
    3. 4.3. List(列表)
    4. 4.4. Set(集合)
    5. 4.5. sorted set(有序集合)
  5. 5. Redis数据备份与恢复
    1. 5.1. 备份
    2. 5.2. 恢复
  6. 6. 更多信息看菜鸟教程