当前位置: 首页 > news >正文

redis的一些操作

文章目录

  • redis安装
  • Ubuntu安装
  • Win11安装
  • 清空当前缓存和所有缓存
  • 配置内存大小,防止内存饱满
  • 设置内存淘汰策略
  • 键过期机制

redis安装

Ubuntu安装

如果有root权限,或者可以使用sudo安装,那就很简单:
更新系统

sudo apt update

apt安装

sudo apt install redis-server

安装完成后,测试Redis的版本和安装情况:

redis-cli --version

或者

wget http://download.redis.io/releases/redis-7.0.9.tar.gztar -zxvf redis-7.0.9.tar.gzsudo mv ./redis-7.0.9  /usr/local/cd /usr/local/redis-7.0.9
sudo makesudo make testsudo make install
#执行完成后,将redis的可执行程序安装在/usr/local/bin中

进入/usr/local/bin 查看是否安装了

cd /usr/local/binls -allredis-server       #redis的服务器
redis-cli       #redis命令行客户端
redis-benchmark  #redis性能测试工具
redis-check-aof  #AOF文件修复工具
redis-check-rdb        #RDB文件检索工具

如果没有root权限,不能使用sudo安装,需要安装到本地

wget http://download.redis.io/releases/redis-7.0.9.tar.gz
tar -zxvf redis-7.0.9.tar.gz
cd redis-7.0.9
sudo make
sudo make test

在这里插入图片描述
新建redis文件夹,安装redis,如下:

make install PREFIX=../redis

Win11安装

清空当前缓存和所有缓存

Windows环境下使用命令行进行redis缓存清理

  • redis安装目录下输入cmd
  • redis-cli -p 端口号
  • flushdb 清除当前数据库缓存
  • flushall 清除整个redis所有缓存

在redis安装目录下,右键选择“在终端打开”,如下图:
在这里插入图片描述

(base) PS C:\Program Files\Redis> redis-cli -p 6379
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> flushall
OK
127.0.0.1:6379>

在这里插入图片描述

配置内存大小,防止内存饱满

1、通过在Redis安装目录下的redis.conf配置文件设置内存大小

maxmemory 4096mb

2、通过cmd

//设置Redis最大占用内存大小为100M
127.0.0.1:6379> config set maxmemory 4096mb
//获取设置的Redis能使用的最大内存大小
127.0.0.1:6379> config get maxmemory

在这里插入图片描述

设置内存淘汰策略

  • noeviction策略:内存空间达到maxmemory时,不会淘汰数据,有新写入时会返回错误。
  • volatile-ttl策略:针对设置了过期时间的键值对,根据过期时间的先后进行修改,越早过期的越先被删除。
  • volatile-random策略:在设置了过期时间的键值对中,进行随机删除。
  • volatile-lru策略:使用LRU算法筛选设置了过期时间的键值对,进行删除。
  • volatile-lfu策略:使用LFU算法筛选设置了过期时间的键值对,进行删除。
  • allkeys-random策略:在所有键值对中随机选择并删除数据。
  • allkeys-lru策略:使用LRU算法在所有数据中进行筛选并删除数据。
  • allkeys-lfu策略:使用LFU算法在所有数据中进行筛选并删除数据。

当使用volatile-lru、volatile-random、volatile-ttl这三种策略时,如果没有key可以被淘汰,则和noeviction一样返回错误
设置方法

127.0.0.1:6379> config set maxmemory-policy allkeys-lru

查看策略

127.0.0.1:6379> config get maxmemory-policy

键过期机制

一个键过期机制——给key设置一个过期时间,一旦超过过期时间,这个key就会被被删除,内存将被回收。

设置键值时,EXPIRE单位是秒,PEXPIRE单位是毫秒
在Redis中,可以使用以下命令来设置键的过期时间:

  1. EXPIRE key ttl:设置键在ttl秒后过期。

例如,要设置一个名为“username”的键在60秒后过期,可以执行以下命令:

EXPIRE username 60

如果设置成功,将返回1;如果键不存在或者设置失败,将返回0。

  1. PEXPIRE key milliseconds:设置键在毫秒后过期。

例如,要设置一个名为“email”的键在1000毫秒后过期,可以执行以下命令:

PEXPIRE email 1000

如果设置成功,将返回1;如果键不存在或者设置失败,将返回0。

  1. EXPIREAT key timestamp:设置键在某个时间戳(精确到秒)之后过期。

例如,要设置一个名为“password”的键在2023年1月1日0点1分过期,可以执行以下命令:

EXPIREAT password 1672752660

如果设置成功,将返回1;如果键不存在或者设置失败,将返回0。

  1. PEXPIREAT key millisecondsTimestamp:设置键在某个时间戳(精确到毫秒)之后过期。

例如,要设置一个名为“access_token”的键在2023年1月1日0点1分10秒后过期,可以执行以下命令:

PEXPIREAT access_token 1672752670000

如果设置成功,将返回1;如果键不存在或者设置失败,将返回0。

需要注意的是,当键已经存在时,才允许设置过期时间。如果键不存在,使用上述命令将返回0。此外,当键过期后,可以使用TTL和PTTL命令来查看该键的剩余存活时间。如果键不存在或者未设置过期时间,将返回-1或-2。
TTL单位是秒,PTTL单位是毫秒

127.0.0.1:6379> TTL KEY
127.0.0.1:6379> PTTL KEY

相关文章:

  • Servlet+JSP小型超市管理系统
  • 卷积神经网络(CNN)识别验证码
  • 野指针详解
  • Oracle中文显示???????解决办法
  • 为什么 Flink 抛弃了 Scala
  • 2023年P气瓶充装证模拟考试题库及P气瓶充装理论考试试题
  • C++:一文读懂智能指针
  • js修改浏览器地址栏里url的方法
  • python -opencv 中值滤波 ,均值滤波,高斯滤波实战
  • 汽车电子 -- 根据DBC解析CAN报文
  • 电力感知边缘计算网关产品设计方案-网关系统通信架构方案
  • 生产环境出现问题,测试人如何做工作复盘?
  • 最重要的BI测试-适用于任何BI和分析平台
  • 看完就会,从抓包到接口测试的全过程解析【1500字保姆级教程】
  • 2023亚太地区数学建模C题思路分析+模型+代码+论文
  • 【笔记】你不知道的JS读书笔记——Promise
  • es6--symbol
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • react-native 安卓真机环境搭建
  • SpiderData 2019年2月23日 DApp数据排行榜
  • vue-cli3搭建项目
  • vue-router的history模式发布配置
  • Zepto.js源码学习之二
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • ------- 计算机网络基础
  • 类orAPI - 收藏集 - 掘金
  • 思否第一天
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 延迟脚本的方式
  • 用jquery写贪吃蛇
  • AI算硅基生命吗,为什么?
  • Java数据解析之JSON
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • python最赚钱的4个方向,你最心动的是哪个?
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​linux启动进程的方式
  • ​学习一下,什么是预包装食品?​
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #微信小程序:微信小程序常见的配置传旨
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (JS基础)String 类型
  • (第二周)效能测试
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .NET Core引入性能分析引导优化
  • .NET 设计模式初探
  • .NET 中的轻量级线程安全
  • .NET多线程执行函数
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • ::前边啥也没有
  • [100天算法】-不同路径 III(day 73)
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [BZOJ4566][HAOI2016]找相同字符(SAM)
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计
  • [caffe(二)]Python加载训练caffe模型并进行测试1