网站建设入门pdf,专业别墅设计装修,wordpress怎么建站,焦作网站开发公司电话目录 1. Redis 安装与启动1.1. 安装 Redis1.1.1. 在Linux上安装1.1.2. 在Windows上安装 1.2. 启动 Redis1.2.1. 在Linux上启动1.2.2. 在Windows上启动 1.3. 连接Redis1.3.1. 连接本地Redis1.3.2. 连接远程Redis1.3.2.1. 服务器开放端口1.3.2.2. 关闭防火墙1.3.2.3. 修改配置文件… 目录 1. Redis 安装与启动1.1. 安装 Redis1.1.1. 在Linux上安装1.1.2. 在Windows上安装 1.2. 启动 Redis1.2.1. 在Linux上启动1.2.2. 在Windows上启动 1.3. 连接Redis1.3.1. 连接本地Redis1.3.2. 连接远程Redis1.3.2.1. 服务器开放端口1.3.2.2. 关闭防火墙1.3.2.3. 修改配置文件1.3.2.4.重启Redis服务 2. Redis数据结构详解2.1. 字符串String2.2. 列表List2.3. 集合Set2.4. 有序集合Sorted Set2.5. 哈希Hash 3. Redis 高效管理数据有效期3.1. 设置数据有效期的方法3.1.1. EXPIRE 、 PEXPIRE 命令3.1.2. SET 命令的过期选项3.1.3. TTL PTTL 命令 3.2. 使用场景 Redis全称为Remote Dictionary Server是一种开源的、基于键值对的数据结构存储系统以其高性能、低延迟和丰富的数据结构特性而广受欢迎。本教程旨在为初学者提供一个全面的Redis入门指南涵盖安装、基本操作、数据类型以及实战应用助读者快速上手并高效利用Redis提升应用性能。 Redis是一个key-value存储系统。和Memcached类似但是解决了断电后数据完全丢失的情况而且她支持更多无化的value类型除了和string外还支持lists链表、sets集合和zsets有序集合几种数据类型。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作而且这些操作都是原子性的。
1. Redis 安装与启动 1.1. 安装 Redis 1.1.1. 在Linux上安装
对于Ubuntu/Debian系统可以使用以下命令安装Redis
sudo apt-get update
sudo apt-get install redis-server而对于CentOS/RHEL系统则使用
sudo yum install redisRedis 由四个可执行文件
redis-serverRedis服务器的daemon启动程序redis-cliRedis命令行操作工具。当然你也可以用telnet根据其纯文本协议来操作redis-benchmarkRedis性能测试工具测试Redis在你的系统及你的配置下的读写性能redis-statRedis状态检测工具可以检测Redis当前状态参数及延迟状况
1.1.2. 在Windows上安装
官网 https://redis.io/download/
中文 http://www.redis.cn/
GitHub下载地址https://github.com/MSOpenTech/redis/releasesRedis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘解压后将文件夹重新命名为 redis。
1.2. 启动 Redis 1.2.1. 在Linux上启动
在大多数Linux发行版中安装完成后Redis会自动启动。如果不行的话可以使用命令行其中/etc/redis.conf是配置文件的地址。
redis-server /etc/redis.conf你可以通过以下redis-cli命令来连接Redis
[rootwujie ~]# redis-cli
Warning: Using a password with -a or -u option on the command line interface may not be safe.
127.0.0.1:6379 1.2.2. 在Windows上启动
双击redis-server.exe即可运行如下图所示出现这个就好了哦。可以通过redis-cli ping命令检查Redis是否正在运行
1.3. 连接Redis 1.3.1. 连接本地Redis
一般都可以直接使用redis-cli命令来连接。
1.3.2. 连接远程Redis
这是一个真实的情况在图文魔方小程序的开发中我作为后端开发把代码写好后丢给前端来写页面但是前端没有安装redis服务好吧那我就直接用服务器上的redis好了我先用自己的本地电脑去连接结果是失败的。
1.3.2.1. 服务器开放端口
比如我使用的是阿里云的服务器就要在安全组中开放6379端口。
1.3.2.2. 关闭防火墙
使用命令关闭防火墙
# 查看防火墙状态
sudo systemctl status firewalld
# 关闭防火墙
sudo systemctl disable firewalld
# 禁用防火墙开机自动关闭
sudo systemctl disable firewalld1.3.2.3. 修改配置文件
配置文件名为redis.conf这个文件就看你们的redis安装位置啦这里我把bind注释掉了就好了。
bind 127.0.0.1, 只能在本地机器连接bind 127.0.0.1 192.168.1.1, 可以通过 redis-cli -p 127.0.0.1 或 redis-cli -p 192.168.1.1 连接多个IP用空格分隔就好。bind 0.0.0.0 配置成 0.0.0.0 表示没有IP限制。和不填的效果一样。
以下是一些Redis的配置信息介绍
# 是否以守护进程启动 默认no
daemonize no# 用于设置Redis绑定的网络接口网卡。如果不配置bind默认情况下Redis监听所有可用的网卡redis只接受来自绑定网络接口的请求。
# Redis的配置文件中一般默认有bind 127.0.0.1只允许本地连接如果想要被远程访问注释掉bind配置或者bind外网ip即可。
bind 127.0.0.1# 是否开启保护模式 默认yes是否有效会被bind和requirepass配置影响
## 当protected-mode为yes
### 注释bind和requirepassredis的保护模式生效只能通过本地连接
### 只注释bind配置requirepassredis的保护模式失效可以通过密码远程连接
### 只注释requirepassredis的保护模式失效可以通过bind的ip无密码连接
## 当protected-mode为no
### 无论上面的哪种场景客户端都可以根据 bind 及 requirepass 实际参数来连接到 redis
protected-mode yes# redis服务端口 默认6379
port 6379# 客户端连接空闲时间单位秒如果在指定时间内没有操作则会断开连接 默认0不超时
timeout 0# tcp心跳检测时间单位秒对访问客户端的一种心跳检测每个n秒检测一次 默认0不检测建议设置成60
tcp-keepalive 0# 客户端最大连接数设置redis同时可以与多少个客户端进行连接 默认10000
maxclients 10000# 日志级别配置 默认notice
## debug能设置的最高的日志级别打印所有信息包括debug信息。
## verbose打印除了debug日志之外的所有日志。
## notice打印除了debug和verbose级别的所有日志。
## warning仅打印非常重要的信息。
loglevel notice# 日志文件输出路径配置
## 该路径默认为空。可以根据自己需要把日志文件输出到指定位置。
logfile # 数据库数量配置 默认16
databases 16# 连接密码配置 默认无密码
requirepass 1234561.3.2.4.重启Redis服务
然后使用命令来重启服务
# 重启Redis服务
sudo systemctl restart redis.service一旦Redis服务器配置妥当你就可以使用redis-cli命令来远程连接了。基本的命令格式如下
redis-cli -h host -p port -a passwordhost 是Redis服务器的IP地址或域名。port 是Redis服务器监听的端口默认是6379。password 是你的Redis服务器密码如果设置了的话。 2. Redis数据结构详解
Redis支持五种主要的数据类型String字符串、List列表、Set集合、Hash哈希和Sorted Set有序集合。每种数据类型都有其独特的应用场景。
2.1. 字符串String
特点可以存储数字或文本支持对其执行增加或减少操作。使用场景计数器、用户会话信息、短文本存储等。
SET user:1 wujie # 设置键值对
GET user:1 # 获取键值输出 wujie
INCR user:age # 将键的值增加1假设初始值为0
GET user:age # 获取键值输出 12.2. 列表List
特点双向链表实现可以在列表两端进行插入或删除操作。使用场景队列系统、微博的消息流、最近浏览记录等。
LPUSH mylist apple # 左侧插入元素
RPUSH mylist banana # 右侧插入元素
LRANGE mylist 0 -1 # 获取列表所有元素输出 [apple, banana]2.3. 集合Set
特点无序集合每个元素独一无二适合做去重处理或集合运算。使用场景好友关系存储、标签分类、共同关注等。
SADD fruits apple # 添加元素到集合
SADD fruits orange
SMEMBERS fruits # 获取集合所有元素输出 [apple, orange]2.4. 有序集合Sorted Set
特点自动排序的集合每个元素都与一个浮点数分数关联用于排序。使用场景排行榜、时间线索引、优先级队列等。
ZADD leaderboard 100 player1 # 添加元素到有序集合并指定分数
ZADD leaderboard 50 player2
ZRANGE leaderboard 0 -1 # 获取有序集合的所有元素和分数输出 [player1, player2]2.5. 哈希Hash
特点字段-值映射适用于存储对象。使用场景存储配置文件、用户信息、购物车等。
HMSET user:1 name Tom age 30 # 添加字段和值到哈希表
HGETALL user:1 # 获取哈希表中的字段和值输出 {name: Tom, age: 30}3. Redis 高效管理数据有效期
在许多应用场景下数据具有临时性例如网页缓存、用户会话信息或限时消息。为这类数据设置有效期可以
节省资源自动清理不再需要的数据避免内存占用。保持数据新鲜度确保获取的是最新的数据副本。提升安全性限制敏感数据的生命周期。
3.1. 设置数据有效期的方法 3.1.1. EXPIRE 、 PEXPIRE 命令
**EXPIRE key seconds**设置key在seconds秒后过期。**PEXPIRE key milliseconds**设置key在milliseconds毫秒后过期。
SET mykey Hello
EXPIRE mykey 10 # 设置mykey在10秒后过期3.1.2. SET 命令的过期选项
在使用SET命令设置键值时可以直接指定过期时间
SET mykey Hello EX 10 # EX表示以秒为单位
SET mykey Hello PX 10000 # PX表示以毫秒为单位3.1.3. TTL PTTL 命令
**TTL key**查询key的剩余生存时间以秒为单位如果已过期或不存在则返回-2或-1。**PTTL key**查询key的剩余生存时间以毫秒为单位。
TTL mykey # 返回mykey剩余的生存时间秒3.2. 使用场景
设置数据有效时间在许多场景下非常有用例如
缓存在缓存服务器上存储的数据通常是暂时的可以使用过期时间自动清除旧数据。会话管理用户会话信息可以在用户登录后设置一个过期时间以便在会话结束时自动清除。临时授权如验证码等敏感信息可以在验证后设置一个短时间的过期确保它们不会长时间留在系统中。