# 安装

官网提供的是 Mac 和 Linux 的安装包,并没有 windows 的,但是 github 有相关的开源项目。

开源地址:https://github.com/tporadowski/redis/releases

直接下载 zip 安装包就行了,然后运行服务端打开 redis-server.exe 文件即可。客户端打开 redis-cli.exe 即可。

如果客户端想要使用本地 cmd,则在 redis 根目录下执行命令: redis-cli.exe -h localhost 。默认是 6379 端口。

如果想要远程访问,就需要将 redis.windows.conf 的 bind 注释掉, protected-mode 设为 no

Linux (ubuntu) 下载 Redis:

sudo apt install redis-server
# 查看服务,按 q 退出
sudo systemctl status redis-server

可以远程访问 Redis,但是需要配置一下 /etc/redis.conf 文件,定位到 bind 0.0.0.0 ::1 ,取消这行的注释,保存退出,重启 Redis 服务:

sudo systemctl restart redis-server

配置防火墙,允许网络流量通过 TCP 端口 6379

通常你想要允许从一个指定 IP 地址或者一个指定 IP 范围来访问 Redis 服务器。例如,想要允许从 192.168.121.0/24 的连接,运行下面的命令:

sudo ufw allow proto tcp from 192.168.121.0/24 to any port 6379

此时,你应该可以从远程位置通过 TCP 连接到 Redis 的 6379 端口。

想要验证所有设置都设置好了,你可以尝试使用 redis-cli 从你的远程机器上 ping 一下 Redis 服务器。

redis-cli -h <REDIS_IP_ADDRESS> ping

这个命令将会返回一个响应: PONG

PONG

使用: redis-server& 置入后台,使用 ctrl+c 不会关闭 redis,然后再执行 redis-cli 打开客户端即可。

关于 redis 可视化工具,可以使用 Redis View,我把安装包放在阿里云盘了。

# 应用场景

  • 热点数据的缓存:作为缓存使用,保存数据的方式一般是两种,读取数据前先读取 Redis,次级是数据库,并将数据拉入 Redis(可能会缓存击穿);插入数据时同时写入 Redis。
  • 限时业务:比如验证码校验,60s 内有效。
  • 计数器:redis 的 incrby 原子递增,可以运用于高并发秒杀
  • 好友关系存储:在微博应用中,每个用户关注的人存在一个集合中,就很容易实现求两个人的共同好友功能。Redis 利用集合的一些命令,比如求交集、并集、差集等。
  • 简单队列:由于 Redis 有 list push 和 list pop 这样的命令,所以能够很方便的执行队列操作。

# 基本使用

Redis 是一个键值数据库,因此,可以像 Map 一样的操作方式,通过键值对向 Redis 数据库中添加数据(操作起来类似于向一个 HashMap 中存放数据)。

现在打开客户端或者使用 cmd 连接到服务端。

redis 的数据库由整数索引标识(而不是名称),默认连接到 redis 使用 0 号数据库,默认 16 个数据库(可以通过配置文件修改数据库总数)。

相关命令操作:

# 切换数据库
select 序号
# 添加 / 修改数据;添加多个数据:mset key1 value1 key2 value2..
set key value
# 获取数据
get key
# 删除数据
del key
# 设置数据过期时间,自动删除
set key value EX 秒
set key value PX 毫秒
# 为单独的键设置过期时间,转为永久就是 persist key
expire key
# 查询过期时间剩余 毫秒就是 pttl
ttl key
# 查询所有键值
keys *
# 某个键是否存在
exists key
# 随机拿一个键
randomkey
# 数据库内容迁移
move key 数据库序号
# 修改键名 renamex 会检查新名称是否存在
rename key 新的键名
# 存放的数据是数字,自增自减操作
incr key	# a++
incrby key b	# a = a+b
decr key	# a--
# 查看数据类型
type key

# 参考

https://pdai.tech/md/db/nosql-redis/db-redis-introduce.html

https://www.yuque.com/qingkongxiaguang/spring/nka2vz

https://cloud.tencent.com/developer/article/1639658