Redis
# Redis 简介
Redis 是一款开源的、基于内存进行存储的数据库。
# Redis 基础
# 安装与使用 (Linux 版)
前往 Redis 的官网进行下载,进入 Install Redis=>Install from Source
根据官网给出的文档进行下载,首先获取官方的 tar 包 (请提前安装 wget)
1 | wget https://download.redis.io/redis-stable.tar.gz |
然后进行解压
1 | tar -zxvf redis-stable.tar.gz -C /usr/local |
进入到相应的文件夹
1 | cd /usr/local/redis-stable |
进行编译
1 | make |
如果失败,可以尝试用 root 用户进行
然后使用 vim 对配置文件 (redis.conf) 进行修改:
1 | 备份初始配置文件,防止错误修改一些内容 |
修改下面这些关键字的内容:
1 | 可以访问Redis的ip,默认为127.0.0.1 ,修改为0.0.0.0表示任意机器都可以访问 |
修改完成后保存退出,使用如下指令来运行 Redis
1 | redis-server redis.conf |
注意:这样开启的 Redis 服务并不会开机自启,当电脑重启后,Redis 将关闭,需要手动重新启动 Redis 服务
使用如下代码查询 redis 的开启情况,或者关闭 redis:
1 | 查询redis是否开启 |
通过 redis 自带的客户端可以在命令行进行连接:
1 | -h可以指定连接的ip地址,-p指定连接的端口,-a为密码,为保证安全,不推荐使用-a进行连接 |
# 命令
# String 类型的常见命令
命令 | 描述 |
---|---|
SET | 添加或者修改已经存在的一个 String 类型的键值对 |
GET | 根据 key 获取 String 类型的 value |
MSET | 批量添加多个 String 类型的键值对 |
MGET | 根据多个 key 获取多个 String 类型的 value |
INCR | 让一个整形的 key 自增 1 |
INCRBY | 让一个整形的 key 自增并指定步长 |
INCRBYFLOAT | 让一个浮点类型的数字自增并指定步长 |
SETNX | 添加一个 String 类型的键值对,前提是其 key 不存在,否则不执行 |
SETEX | 添加一个 String 类型的键值对,并指定有效期 |
# Hash 类型的常见命令
命令 | 描述 |
---|---|
HSET key field value | 添加或修改 hash 类型 key 的 field 的值 |
HGET key field | 获取一个 hash 类型 key 的 field 的值 |
HMSET(已弃用) | 批量添加多个 hash 类型 key 的 field 的值 |
HMGET | 批量获取多个 hash 类型 key 的 field 的值 |
HGETALL | 获取一个 hash 类型的 key 中的所有的 field 和 value |
HEKYS | 获取一个 hash 类型的 key 中的所有 field |
HVALS | 获取一个 hash 类型的 key 中所有的 value |
HINCRBY | 让一个 hash 类型 key 的字段值自增并指定步长 |
HSETNX | 添加一个 hsh 类型的 key 的 field 值,前提是这个 field 不存在,否则不执行 |
# List 类型的常见命令
命令 | 描述 |
---|---|
LPUSH key element … | 向列表左侧插入一个或多个元素 |
LPOP key | 移除并返回列表左侧的第一个元素,没有则返回 nil |
RPUSH key element … | 向列表右侧插入一个或多个元素 |
RPOP key | 移除并返回列表右侧的第一个元素 |
LRANGE key start end | 返回一段角标范围内的所有元素 |
BLPOP 和 BRPOP | 与 LPOP 和 RPOP 类似,只不过在没有元素时等待指定时间,而不是直接返回 nil |
# Set 类型的常见命令
命令 | 描述 |
---|---|
SADD key member … | 向 set 中添加一个或多个元素 |
SREM key member … | 移除 set 中的指定元素 |
SCARD key | 返回 set 中元素的个数 |
SISMEMBER key member | 判断一个元素是否存在于 set 中 |
SMEMBERS | 获取 set 中的所有元素 |
SINTER key1 key2 … | 求 key1 与 key2 的交集 |
SDIFF key1 key2 … | 求 key1 与 key2 的差集 |
SUNION key1 key2 … | 求 key1 与 key2 的并集 |
# SortedSet 类型的常见命令
命令 | 描述 |
---|---|
ZADD key score member | 添加一个或多个元素到 sorted set,如果已经存在则更新其 score 值 |
ZREM key member | 删除 sorted set 中的一个指定元素 |
ZSCORE key member | 获取 sorted set 中的指定元素的 score 值 |
ZRANK key member | 获取 sorted set 中的指定元素的排名 |
ZCARD key | 获取 sorted set 中的元素个数 |
ZCOUNT key min max | 统计 score 值在给定范围内的所有元素的个数 |
ZINCRBY key increment member | 让 sorted set 中的指定元素自增,步长为指定的 increment 值 |
ZRANGE key min max | 按照 score 排序后,获取指定排名范围内的元素 |
ZRANGEBYSCORE key min max | 按照 score 排序后,获取指定 score 范围内的元素 |
ZDIFF、ZINTER、ZUNION | 求差集、交集、并集 |
# 基础实战练习
# Redis 高级
# Redis 原理
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ailzr's Blog!
评论