键的过期时间
简介Redis可以通过对键设置过期时间来自动删除过期的键信息。当设置了一个过期时间后,过期时间会被存储为一个绝对的UNIX的时间戳。这样做的目的是即使Redis服务器宕机了一段时间,这个时间戳也会被持久化到RDB文件中,当Redis服务器启动时,这个用来判断键是否过期的时间戳不会发生变化,一旦超过了这个时间戳,键就过期了。
Redis可以通过对键设置过期时间来自动删除过期的键信息。当设置了一个过期时间后,过期时间会被存储为一个绝对的UNIX的时间戳。这样做的目的是即使Redis服务器宕机了一段时间,这个时间戳也会被持久化到RDB文件中,当Redis服务器启动时,这个用来判断键是否过期的时间戳不会发生变化,一旦超过了这个时间戳,键就过期了。
在一个键过期后,客户端访问已经过期的键,Redis就会立即将其从内存中删除。Redis这种删除键的方式被称为被动过期。对于那些已经过期也不会被再次访问的键,Redis会定期运行一个基于概率的算法来进行主动删除。跟具体的就是Redis会选择设置了过期时间的20个键,在这20个键中已经过期的就立即删除,如果选中的键中25%的键已经过期被删除,那Redis会继续选择20个进行重复这个过程,该过程每秒钟运行10次,可通过配置文件的hz值进行设置。
清理键过期的方法:
- 使用PERSIST命令使其成为持久的键;
- 键的值被替换或被删除,都会清除过期时间。但是修改列表、集合、哈希不会清理过期时间,这里只是修改了元素信息,并没有操作键的信息;
- 被另一个没有过期时间的键重命名;
相关命令
EXPIRE、EXPIREAT、TTL、PERSIST
相关操作
1、使用EXPIRE设置过期时间、TTL命令查看剩余时间
127.0.0.1:6379> LPUSH "user_ids" 123 456 234 156 888
(integer) 5
127.0.0.1:6379> TTL "user_ids" #如果没有过期时间,就返回-1
(integer) -1
127.0.0.1:6379> EXPIRE "user_ids" 100 #100设置为过期的相对时间,单位秒
(integer) 1
127.0.0.1:6379> TTL "user_ids"
(integer) 99
#等待99秒
127.0.0.1:6379> TTL "user_ids" #如果这个键不存在就返回-2
(integer) -2
127.0.0.1:6379> EXISTS "user_ids"
(integer) 0
2、使用PERSIST命令将键设置为持久的键
127.0.0.1:6379> LPUSH "user_ids" 123 456 234 156 888
(integer) 5
127.0.0.1:6379> EXPIRE "user_ids" 100
(integer) 1
127.0.0.1:6379> TTL "user_ids"
(integer) 98
127.0.0.1:6379> PERSIST "user_ids"
(integer) 1
127.0.0.1:6379> TTL "user_ids"
(integer) -1
注意:EXPIRE命令和EXPIREAT命令类似,EXPIREAT用来指定一个绝对的UNIX的时间戳。EXPIRE和EXPIREAT都可以
是毫秒级的精度来指定过期时间。
Redis对已经过期的键的主动删除是不可预料的,所以有些已经过期的键可能永远不会被删除。当发现有太多的键没有被删除掉的时候,可以使用SCAN命令来人为主动的删除过期的键。
缩放布局组件FittedBox主要有两个功能:缩放和位置调整。FittedBox会根据自己的尺寸来调整child的尺寸。
Tauri 是一个框架,用于为所有主要桌面平台构建小巧、快速的二进制文件。开发人员可以集成任何可编译为 HTML、JS 和 CSS 的前端框架,以构建他们的用户界面。应用程序的后端是一个基于 Rust 的二进制文件,带有一个前端可以与之交互的 API。
Tauri 应用程序的用户界面目前在 macOS 和 Windows 上利用 tao 作为窗口处理库,在 Linux 上通过 Tauri 团队孵化和维护的 WRY 利用 WebKit、Windows 上的 WebView2 和 Linux 上的 WebKitGTK 创建一个统一的系统 webview(和其他好东西,如菜单和任务栏)接口。
图像添加(高斯/椒盐/泊松/斑点)噪声
python多维数组为一维数组(reshape、flatten、ravel),使用NumPy库.
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。