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 | service redis stop |
关闭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
5127.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
4redis 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.htmlHash(哈希)
Redis hash 是一个键值(key=>value)对集合。
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
DEL用于删除前面创建的key,不然再次创建会报错
1 | redis 127.0.0.1:6379> DEL runoob |
HMSET
设置键值对,HGET
获取field对应的value
每个 hash 可以存储 232 -1 键值对(40多亿)。
https://www.runoob.com/redis/redis-hashes.html
List(列表)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
1 | redis 127.0.0.1:6379> LPUSH runoobkey redis |
LPUSH
将元素放到列表头,LRANGE
读取列表的范围
https://www.runoob.com/redis/redis-lists.html
Set(集合)
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
实例
1 | redis 127.0.0.1:6379> SADD runoobkey redis |
SADD
向集合插入元素,SMEMBERS
返回集合的所有成员
https://www.runoob.com/redis/redis-sets.html
sorted set(有序集合)
Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
实例
1 | redis 127.0.0.1:6379> ZADD runoobkey 1 redis |
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 | redis 127.0.0.1:6379> CONFIG GET dir |