REDIS 键(KEY) 技术教程文章

Django笔记:Redis键值对数据库【代码】

Redis是一种nosql数据库(非关系型数据库),它的数据是以键值对的形式保存在内存中的,同时也可以定时将数据同步到磁盘文件中,即实现数据的持久化,相比于Memcached缓存系统,它支持更多的数据结构,如string、list(队列和栈)、set(集合)、sorted set(有序集合)、hash(hash表)等。本文只是简单整理了下学习笔记,感兴趣的话可以查看中文官方文档。 一、使用场景和特点 1. 常用的使用场景登录会话存储:存储在Redis中,与...

Redis 基本 键命令

语法结构为:命令 键名 keys * # 获得所有的键 1) "age"2) "sage"3) "name"4) "stuname"5) "sname" 127.0.0.1:6379> set sex nan # 设置键sex ,值nan OK 127.0.0.1:6379> get sex 通过键sex获得对应的值 "nan"127.0.0.1:6379> exists sex # 如果键名存在,返...

Spring Boot 监听 Redis Key 失效事件实现定时任务【代码】

在关注的公众号上发现这样一篇文章,感觉挺实用的就记录下来分享给大家! 业务场景:监听 Redis 键值对过期时间来实现订单自动关闭 实现思路: 在生成订单时,向 Redis 中增加一个 KV 键值对,K 为订单号,保证通过 K 能定位到数据库中的某个订单即可,V 可为任意值。 假设,生成订单时向 Redis 中存放 K 为订单号,V 也为订单号的键值对,并设置过期时间为 30 分钟,如果该键值对在 30 分钟过期后能够发送给程序一个通知,或者执...

Redis查询Key

Redis查询Key2017年08月15日 11:42:35 阅读数:2177 标签: redis 更多个人分类: 脚本语言http://www.redis.net.cn/order/3535.htmlRedis命令:http://www.redis.net.cn/order/Redis Keys 命令用于查找所有符合给定模式 pattern 的 key 。。语法redis KEYS 命令基本语法如下:redis 127.0.0.1:6379> KEYS PATTERN可用版本>= 1.0.0返回值符合给定模式的 key 列表 (Array)。实例首先创建一些 key,并赋上对应值:redis 127.0.0.1:63...

Redis入门到精通(八)——key通用指令基本操作、【代码】【图】

key特性key是一个字符串,通过key获取redis中保存的数据key应该设计哪些操作 一、key基本操作删除指定key del key 获取key是否存在 exists key 获取key的类型 type key二、key扩展操作(时效性控制)为指定key设置有效期 expire key seconds #设置过期时间(s),过了有效期这个key就会被删除 pexpire key milliseconds #设置过期时间(毫秒单位) expireat key timestamp #设置过期时间(时间戳) pexpireat k...

redis(四):Redis 键(key)【代码】

Redis 键命令用于管理 redis 的键。 语法 Redis 键命令的基本语法如下:redis 127.0.0.1:6379> COMMAND KEY_NAME实例redis 127.0.0.1:6379> SET runoobkey redis OK redis 127.0.0.1:6379> DEL runoobkey (integer) 1在以上实例中 DEL 是一个命令, runoobkey 是一个键。 如果键被删除成功,命令执行后输出 (integer) 1,否则将输出 (integer) 0 Redis keys 命令 下表给出了与 Redis 键相关的基本命令: 序号命令及描述1 DEL key该...

redis-trib.rb reshard 出现错误redis-trib.rb:1573: warning: key "threshold" is duplicated and o

[root@localhost src]# ruby redis-trib.rb reshard 127.0.0.1 7000 --from 7ad192ef15a2eb136b8ae677e75a88799877c04e --to a3149dc5196622de43e3be6501368267b334eb18 --slots 1redis-trib.rb:1573: warning: key "threshold" is duplicated and overwritten on line 1573[ERR] Wrong number of arguments for specified sub command 出现上述错误,看代码后得知,是因为 reshard命令的参数个数只能是两个 ruby redis-trib.rb re...

清除redis的特定前缀的key【代码】

批量删除Key Redis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作redis-cli keys "*"| xargs redis-cli del //如果redis-cli没有设置成系统变量,需要指定redis-cli的完整路径 //如:/opt/redis/redis-cli keys "*" | xargs /opt/redis/redis-cli del如果要指定 Redis 数据库访问密码,使用下面的命令 redis-cli -a password keys "*"| xargs redis-cli -...

批量删除redis的key【代码】

项目中某个redis的key下面有几十万条数据,用rdm工具删能卡死,于是用python写了一个脚本来删,效果非常不错,推荐给大家。 举个例子com:uecent:udata:climb下面有几十万条数据,比如 com:uecent:udata:climb:1000001 com:uecent:udata:climb:1000001 com:uecent:udata:climb:1000003 … 执行命令: python3 redis_delete.py -d 2 -k com:uecent:udata:climb -d 2:表示删除redis第2个数据库,可以指定0-15 -k:表示删除的key前缀 可...

Redis 数据类型和键【代码】

Redis 五种数据类型 Redis五种数据类型分别为:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。这五种数据类型都是通过key/value的方式存储的,其数据类型主要是指value的类型。 String(字符串) String是Redis最基本的数据类型。String类型是二进制安全的,即redis的String可以包含任何数据,比如jpg图片或者序列化的对象,但要注意的是String类型的值最大储存512MB。 hash(哈希) hash类...

Redis学习之热点key重建【图】

在Redis的生产环境中,大量客户端连接请求某一个key,但都需要从DB中获取数据,来回写数据库,如下图:<ignore_js_op>造成的问题:大量的线程请求数据库,造成数据库压力,还有就是请求会变慢。解决办法:在缓存层面做一个互斥锁,达到只有单个线程来更新数据的目的,但是响应还是很慢,只是db压力减轻还可能因为操作不当而造成线程死锁问题。<ignore_js_op>(2)key永不过期策略:热点key不设置过期时间,但是存在一个逻辑过期时间...

Redis(二):redis命令构建及关键属性解析【代码】

上一篇文章,我们从框架层面,主要介绍了redis的启动过程,以及主要的命令处理流程逻辑。这些更多的都是些差不多的道理,而要细了解redis,则需要更细节的东西。今天我们稍微内围的角度,来看看几个命令执行的重要方法,深入理解下redis的魅力所在。 首先,我们通过上一章知道,processCommand 是其业务主要入口,我们再来回顾下:// server.c /* If this function gets called we already read a whole* command, arguments are in ...

redis超大key的定时任务设计

如果遇到一个上百万的key需要做定时任务扫描处理改怎么办呢? 1、菜鸟做法是直接使用key *命令,其实这种做法在生产上是不被允许的,key * 会扫描整个redis库,频繁的扫库会导致redis压力过大而崩溃; 2、一般的程序员知道使用hashset,不用对整个redis库,但如果key值过大每次扫描也是相当地考验机器系统性能,想想每次都读取百万的数据那是什么概念; 3、聪明人做法就是借鉴hbase的时间戳做rowkey的做法,将时间戳融入redis的key...

spring-redis-session 自定义 key 和过期时间【代码】

对于分布式应用来说,最开始遇到的问题就是 session 的存储了,解决方案大致有如下几种使用 spring-session 它可以把 session 存储到你想存储的位置,如 redis,mysql 等 使用 JWTs ,它使用算法来验证 token 的合法性,是否过期,并且 token 无法被伪造,信息也是无法被篡改的本文内容主要说 spring-session 使用 redis 来存储 session ,实现原理,修改过期时间,自定义 key 等 spring-session 对于内部系统来说还是可以的,使用...

关于redis key命名规范的若干想法

一、实现目标 简洁,高效,可维护 二、键值设计规约 1 、 Redis key命名风格 【推荐】Redis key命名需具有可读性以及可管理性,不该使用含义不清的key以及特别长的key名; 【强制】以英文字母开头,命名中只能出现小写字母、数字、英文点号(.)和英文半角冒号(:); 【强制】不要包含特殊字符,如下划线、空格、换行、单双引号以及其他转义字符; 2 、命名规范 【强制】命名规范:业务模块名:业务逻辑含义:其他:value类型 1 )业务模...

解决redis运行期间key值过期但是内存memory依然占用过高

要解决这个问题,首先要了解redis info信息中几个数据的意义: ?used_memory:810575104 //数据占用了多少内存(字节)? used_memory_human:773.02M //数据占用了多少内存(带单位的,可读性好)? used_memory_rss:885465088 ?//redis占用了多少内存? used_memory_rss_human:844.45M //redis占用了多少内存(带单位的,可读性好)?? used_memory_peak:2001274696?//占用内存的峰值(字节)? used_memory_peak_human:1.86G //占用内存...

推送列表上的数据时,对键在redis中持有错误类型值的操作【代码】

创建了redis列表和设置键,如下所示public async Task MyMethod<T>(){ //if i'm doing following it is workingstring listname = "listname";string listkey = "key";RedisList<string> demodemo = new RedisList<string>(Settings, listname);await demodemo.LeftPush(listkey);//but i want to do it like below it is thoughing exceptionRedisList<string> list = new RedisList<string>(Settings, typeof(T).Name.ToString())...

Redis键值数据类型列表类型【代码】

列表类型(list)可以存储一个有序的字符串列表,内部实现是双向链表, 借助列表类型,Redis还可以作为队列使用, 且与散列类型键最多能容纳的字段数量相同, 一个列表类型键最多能容纳2^32-1个元素 常用命令 向左\向右插入元素lpush key value [value....] 从左边向列表增加元素 rpush key value [value....] 从右边向列表增加元素lpush numbers 1 lpush numbers 2 3 此时为 3 2 1rpush numbers 0 rpush numbers -1 此时为 3 2 1 0...

Redis过期key淘汰策略【代码】

Redis采用惰性+定期的key淘汰策略 1. Redis配置项hz定义了serverCron任务的执行周期,默认为10,即CPU空闲时每秒执行10次; 2. 每次过期key清理的时间不超过CPU时间的25%,即若hz=1,则一次清理时间最大为250ms,若hz=10,则一次清理时间最大为25ms; 3. 清理时依次遍历所有的db; 4. 从db中随机取20个key,判断是否过期,若过期,则逐出; 5. 若有5个以上key过期,则重复步骤4,否则遍历下一个db; 6. 在清理过程中,若达到了25%CPU时间...

Redis删除相同前缀的key【代码】

? ? ? 如何优雅地删除Redis set集合中前缀相同的key? ? ? ? Redis中有删除单条数据的命令DEL,却没有批量删除特定前缀key的指令,但我们经常遇到需要根据前缀来删除的业务场景,那么究竟该怎么做呢?可能你一通搜索后会得到下边的答案:redis-cli --raw keys "prefix-*" | xargs redis-cli del 直接在linux下通过redis的keys命令匹配到所有的key,然后调用系统命令xargs来删除,看似十全十美,实则风险巨大。这就是一颗随时...