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.gz
tar -zxvf redis-7.0.9.tar.gz
sudo mv ./redis-7.0.9 /usr/local/
cd /usr/local/redis-7.0.9
sudo make
sudo make test
sudo make install
#执行完成后,将redis的可执行程序安装在/usr/local/bin中
进入/usr/local/bin 查看是否安装了
cd /usr/local/bin
ls -all
redis-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中,可以使用以下命令来设置键的过期时间:
- EXPIRE key ttl:设置键在ttl秒后过期。
例如,要设置一个名为“username”的键在60秒后过期,可以执行以下命令:
EXPIRE username 60
如果设置成功,将返回1;如果键不存在或者设置失败,将返回0。
- PEXPIRE key milliseconds:设置键在毫秒后过期。
例如,要设置一个名为“email”的键在1000毫秒后过期,可以执行以下命令:
PEXPIRE email 1000
如果设置成功,将返回1;如果键不存在或者设置失败,将返回0。
- EXPIREAT key timestamp:设置键在某个时间戳(精确到秒)之后过期。
例如,要设置一个名为“password”的键在2023年1月1日0点1分过期,可以执行以下命令:
EXPIREAT password 1672752660
如果设置成功,将返回1;如果键不存在或者设置失败,将返回0。
- 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