首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
Redis自学笔记:4.2进阶-过期时间
】的更多相关文章
Redis自学笔记:4.2进阶-过期时间
4.2过期时间 **4.2.1命令介绍* 在redis中使用 expire 命令设置一个键的过期时间后redis会自动删除它. expire key seconds (seconds单位是秒,必须是整数) 返回值是1表示设置成功,返回0则表示键不存在或设置失败 查看见还有多久被删除: ttl key 返回值是键的剩余时间,-1表示该键没有设置过期时间,-2表示该键不存在 取消键的过期事件设置: persist key 为该键重新赋值也会清除键的过期时间 pexpire key msec (mse…
Redis学习笔记(十)——过期时间、访问限制与缓存
http://irfen.me/redis-learn-10-time-expire-limit-cache/ 过期时间 之前应该提到过 redis 的特性之一是可以设置键的超时时间.命令是expire. redis > SET session:27e7a id1234 OK redis > EXPIRE session:27e7a 1200 (integer) 1 EXPIRE命令返回1表示成功,返回0表示键值不存在或设置失败. 同时这里还有一个比较常用的命令是ttl,用于查看一个键还有多久…
Redis自学笔记:4.3进阶-排序
4.3排序 4.3.1有序集合的集合操作 有序集合没有zinter和zunion命令,使用其他命令实现方法: multi zinterstore tempKey ... zrange tempKey ... del tempKey exec 4.3.2 sort命令 sort key [alpha] [asc|desc] [limit offset count] sort命令可以对列表类型.集合类型和有序集合类型进行排序,并且完成与 关系数据库中连接查询相类似的任务 127.0.0.1:6379…
Redis自学笔记:4.4进阶-消息通知
4.4消息通知 4.4.1任务队列 传递任务的队列.与任务队列进行交互的实体有两类,一类是生产者,一类是消费者. 生产者将需要处理的任务放入任务队列中,二消费者不断从任务队列中读入任务 信息并执行. 优点: 松耦合 生产者和消费者无需知道彼此实现的细节 易于扩展 消费者可以有多个,而且可以分布在不同服务器 4.4.2使用redis实现任务队列 3.4.2节中的lpush和rpop|lpop命令可以实现队列概念,伪代码: # 无线循环读取任务队列的内容 loop $task = rpop queu…
Redis自学笔记:4.1进阶-事务
第4章:进阶 4.1事务 4.1.1概述 redis中的事务是一组命令的集合 事务同命令一样都是redis的最小执行单位,一个事务中的命令要么都执行, 要么都不执行 事务的原理是先将一个事务的命令发送给redis,然后再让redis依次执行 这些命令,例如: 127.0.0.1:6379> multi OK 127.0.0.1:6379> sadd 'user:1:following' 2 QUEUED 127.0.0.1:6379> sadd 'user:2:following' 1…
Redis设置和更新Key的过期时间
EXPIRE key seconds 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除. 在 Redis 中,带有生存时间的 key 被称为『易失的』(volatile). 生存时间可以通过使用 DEL 命令来删除整个 key 来移除,或者被 SET 和 GETSET 命令覆写(overwrite),这意味着,如果一个命令只是修改(alter)一个带生存时间的 key 的值而不是用一个新的 key 值来代替(replace)它的话,那么生存时间不会被改变. 比…
Redis自学笔记:5.实践
第5章实践 5.3 python与redis 5.3.1安装 pip install redis 5.3.2使用方法 自己补充内容:Ubuntu下redis开启远程连接 打开redis配置:sudo vi /etc/redis/redis.conf 注释掉"bind 127.0.0.1",或者修改为"bind 0.0.0.0" 重启redis服务:sudo /etc/init.d/redis-server restart import redis r = redis…
redis中获取没有设置ttl过期时间的key
需求:redis作为一个内存型的数据库,我们需要对过期key保持关注,从info keyspace中可以看出有多少key没有设置过期时间,那么到底是哪些呢? 说明:关于redis ttl 的返回值,请参考http://redisdoc.com/key/ttl.html 测试数据: > get c_100 "" > ttl c_100 ( ( ( ( > dbsize ( > info keyspace # Keyspace db0:keys,expires,av…
Redis自学笔记:3.6入门-有序集合类型
3.6有序集合类型 3.6.1介绍 在集合类型基础上,为集合中每个元素都关联了一个分数,故可以获得 分数最高(最低)的前N个元素,可以获得指定范围内的元素等 有序集合中每个元素不同,但它们的分数却可以相同 有序集合和列表相同点: 都是有序的 都可以获得某一范围元素 有序集合和列表区别: 列表是通过双链表实现的 有序集合是使用散列表和跳跃表实现的 列表中不能简单地调整某个元素 但是集合可以(通过更改这个元素的分数) 有序集合要比列表更耗费内存 3.6.2命令 增加元素 zadd key score…
Redis自学笔记:3.4入门-列表类型
3.4列表类型 3.4.1介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者 获得列表的某一片段. 优点:内部使用的是双向链表,所以向列表两端添加元素的时间复杂度为O(1),获取 越接近两端的元素速度越快. 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别 指向直接后继和直接前驱 时间复杂度是同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法 乃至程序的效率.O(1)为常数阶. 缺点:通过索引访问元素比较慢 所以列表适合的应用于: 1.…
Redis自学笔记:3.2入门-字符串类型
3.2字符串类型 实际上redis不只是数据库,更多的公司和团队将redis用作缓存和 队列系统 3.2.1介绍 字符串类型是redis最基本的数据类型,它能存储任何形式的字符串, 包括二进制数据.你可以用其存储用户的邮箱.JSON化的对象甚至 是一张图片. 一个字符串类型键允许存储的数据的最大容量是512M 字符串类型是其他4中数据类型基础,其他数据类型和字符串类型 的差别是从某种角度来说只是组织字符串的形式不同.例如, 列表类型是以列表的形式组织字符串 集合类型是以集合的形式组织字符串 3.…
Redis中取得所有Key、过期时间配置与获取、Key过期通知。
string connection = "127.0.0.1:6379,password=xxxxx,connectRetry=5"; [TestMethod] public void TestSet() { var mutlti = StackExchange.Redis.ConnectionMultiplexer.Connect(connection); ); db.HashSetAsync("student1", new StackExchange.Redis…
Redis自学笔记:3.5入门-集合类型
3.5集合类型 3.5.1介绍 在集合中的每个元素都是不同的,且没有顺序 表3-4集合类型和列表类型的对比 - 集合类型 列表类型 存储内容 至多232-1个字符串 至多232-1个字符串 有序性 否 是 唯一性 是 否 集合类型在redis内部是使用值为空的散列表实现的,所有这些操作的 事件复杂度都是O(I) 3.5.2命令 增加/删除元素 sadd key member [member ...] 向集合中增加元素,如果键不存在会自动创建 如果加入的元素已经存在域集合,就会忽略这个元素 返回值…
Redis自学笔记:3.3入门-散列类型
3.3散列类型 3.3.1介绍 散列类型不能嵌套其他数据类型,一个散列类型可以包含至多232-1个字段 散列类型适合存储对象:使用对象类别和ID构成键名,使用字段表示对象的数据, 而字段值则存储属性值. 图3-5使用散列类型存储汽车对象结构图 键 字段 字段值 car:2 color 白色 car:2 name 奥迪 car:2 price 90万 3.3.2命令 赋值与取值 hset key field value 单个字段赋值 hget key field 单个字段取值 hmset key…
Redis自学笔记:3.1入门-热身
第3章:入门 3.1热身 获取符合规则的键名列表:keys 匹配key 表3-1 glob风格通配符规则 符号 含义 ? 匹配一个字符 * 匹配任意个(包括0个)字符 [ ] 匹配括号间的任一字符,可以使用'-'符号表示范围,如a(b-d) \x 匹配字符x,用于转义符号,如果匹配'?',就需要使用? 127.0.0.1:6379> set bar 1 OK 127.0.0.1:6379> keys * 1) "bar" 2) "key" 3) &quo…
Redis自学笔记:2.准备
第2章:准备 '纸上得来终觉浅,绝知此事要躬行'--陆游 2.2启动和停止redis 表2-1 redis可执行文件说明 文件名 说明 redis- server redis服务器 redis-cli redis命令行客户端 redis-benchmark redis性能测试工具 redis-check-aof AOF文件修复工具 redis-check-dump RDB文件检查工具 redis-sentinel Sentinel服务器(2.8版本后) 我们常用的两个程序是redis-serve…
Redis自学笔记:1.简介
博主教材:李子骅.人民邮电出版社.<redis入门指南> 博主操作系统系统:虚拟机Ubuntu16.04 博主redis版本:3.0.6 第1章:简介 redis是一个开源的.高性能的.基于键值对缓存的与存储系统, 通过提供多种键值数据类型来适应不同场景下的缓存与存储需求. 1.1历史域发展 使用redis情况: 国内:新浪微博,街旁,知乎 国外:GitHub,Stack Overflow,Flickr,暴雪,Instagram VMware公司从2010年开始赞助redis的开发 1.2特性…
Redis自学笔记—PHP
connect 实例连接到一个Redis. $redis = new redis(); $result = $redis->connect('127.0.0.1', 6379); var_dump($result); //结果:bool(true) set <?php $redis = new redis(); $redis->connect('127.0.0.1', 6379); $result = $redis->get('test'); var_dump($result);…
Redis自学笔记–Zset类型及管理简述
Zset类型 ZADD key score member 添加指定成员到有序集合中,如果目标存在则更新score(分值,排序用). ZREM key member 从有序集合删除指定成员. ZINCRBY key increment member…
Redis自学笔记 --Hash、List、Set类型简述
Hash类型 hset key field value 设置hash field为指定值,如果key不存在,则先创建. hget key field 获取指定的hash field. hmget key filed1....fieldN 获取全部指定的hash filed. hmset key filed1 value1 ... f…
Redis自学笔记 --string类型
string类型 set 赋值 get 取值 setnx 先判断是否存在,不存在赋值,存在返回0 setrange 设置指定key的value值的子字符串赋值. 第一个字符为0,数字6代表从第6个开始修改,20代表字符串长度. mset 一次设置多个key的赋值 msetnx 一次设置多个key的赋值,先判断是否存在,不存在赋值,存在返…
redis中的key设置过期时间
EXPIRE key seconds 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除. 在 Redis 中,带有生存时间的 key 被称为『易失的』(volatile). 生存时间可以通过使用 DEL 命令来删除整个 key 来移除,或者被 SET 和 GETSET 命令覆写(overwrite),这意味着,如果一个命令只是修改(alter)一个带生存时间的 key 的值而不是用一个新的 key 值来代替(replace)它的话,…
redis的过期时间和过期删除机制
一:设置过期时间 redis有四种命令可以用于设置键的生存时间和过期时间: EXPIRE <KEY> <TTL> : 将键的生存时间设为 ttl 秒 PEXPIRE <KEY> <TTL> :将键的生存时间设为 ttl 毫秒 EXPIREAT <KEY> <timestamp> :将键的过期时间设为 timestamp 所指定的秒数时间戳 PEXPIREAT <KEY> <timestamp>: 将键的过期时间…
redis 过期时间与缓存
设置过期时间 redis对于存储的键值可以设置过期时间,对于过期了的键值,redis会自动删除. > OK > get price " > expire price (integer) > get price " > get price (nil) 上述代码对price设置了5秒的过期时间,5秒内能查出数据,5秒后则返回null 需要说明的是,expire设置的时间单位是秒,如果需要更加精确的话,需要通过pexpire来设置,单位是毫秒,即expire p…
Redis原子性写入HASH结构数据并设置过期时间
Redis中提供了原子性命令SETEX或SET来写入STRING类型数据并设置Key的过期时间: > SET key value EX NX ok > SETEX key value ok 但对于HASH结构则没有这样的命令,只能先写入数据然后设置过期时间: > HSET key field value ok > EXPIRE key 60 ok 这样就带了一个问题:HSET命令执行成功而EXPIRE命令执行失败,那么数据将不会过期.针对这个问题,本文提供两种解决方案: Lua脚本…
在Redis中设置了过期时间的Key,需要注意哪些问题?
熟悉Redis的同学应该知道,Redis的每个Key都可以设置一个过期时间,当达到过期时间的时候,这个key就会被自动删除. 在为key设置过期时间需要注意的事项 1. DEL/SET/GETSET等命令会清除过期时间 在使用DEL.SET.GETSET等会覆盖key对应value的命令操作一个设置了过期时间的key的时候,会导致对应的key的过期时间被清除. //设置mykey的过期时间为300s127.0.0.1:6379> set mykey hello ex 300OK//查看过期时间1…
Redis 学习笔记(篇六):数据库
Redis 是一个使用 C 语言编写的 NoSql 的数据库,本篇就讲解在 Redis 中数据库是如何存储的?以及和数据库有关的一些操作. Redis 中的所有数据库都保存在 redis.h/redisServer 结构中的 db 数组中,如下: struct redisServer { ...... // 数据库 redisDb *db; ...... } Redis 默认会创建 16 个数据库,每个数据库互不影响. 切换数据库 每个 Redis 客户端也都有自己的目标数据库,默认情况下,Re…
Redis---键的过期时间及数据淘汰策略
5.键的过期时间 Redis可以为每个键设置过期时间,当键过期时,会自动删除该键. 对于散列表这种容器,只能为整个键设置过期时间(整个散列表),而不能为键里面的单个元素设置过期时间. 6.数据淘汰策略 可以设置内存最大使用量,当内存使用量超出时,会实行数据淘汰策略. Redis具体有六种淘汰策略: 策略 描述 volatile-lru 从已设置过期时间的数据集中挑选最近最少使用的数据淘汰 volatile-ttl 从已设置过期时间的数据集中挑选将要过期的数据淘汰 volatile-r…
Redis-设置Key的过期时间及相关策略
Redis-设置Key的过期时间及相关策略 1.设置key的过期时间 1.1expire key second:设置key的过期时间(秒) 1.2ttl key:查看key的有效期 1.3persist key:清除key的过期时间.Key持久化 2.为key设置过期时间需要注意的事项 2.1DEL/SET/GETSET等命令会清除过期时间 2.2INCR/LPUSH/HSET等命令则不会清除过期时间 INCR: LPUSH: 2.3PERSIST命令会清除过期时间 2.4使用RENAME命令,…
Redis过期时间
上次开发用了redis后效果不错,后来在进阶的开发中查询到,如果redis一直不释放也会占用内存,于是就想着给redis加上个过期时间. 具体操作很简单,只要在设置redis的时候加上exp就可以了,时间长短可以自己定. public static void SetRedisTable(string key, DataTable dt, TimeSpan? exp = null) { if (dt != null && !string.IsNullOrEmpty(key)) { strin…