文档章节

redis学习笔记---redis特性(expire、事务、数据排序、config命令)

ivan-Zhao
 ivan-Zhao
发布于 2015/12/14 14:18
字数 1225
阅读 255
收藏 3
一、键的生存时间expire
    redis可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它
    命令:
   ① expire    设置生存时间(单位/秒) expire a 10
 ②pexpire    设置生存时间(单位/毫秒)
 ③ttl/pttl    查看键的剩余生存时间      ttl a
 ④persist    取消生存时间
 ⑤expireat [key] unix时间戳1351858600
 ⑥pexpireat [key] unix时间戳(毫秒)1351858700000
    应用场景:
   ① 限时的优惠活动信息
 ②网站数据缓存(对于一些需要定时更新的数据,例如:积分排行榜)
 ③限制网站访客访问频率(例如:1分钟最多访问10次)
二、redis的事务(transaction)
    redis事务是一组命令的集合,事务和命令一样是执行的的最小单元,一个事务的命令的集合要命都执行,要命都不执行;redis事务实现原理是先将命令进行缓存,然后再让redis按照顺序执行这些命令。
    注意:redis的事务是不支持回滚的,一旦失败就必须重新执行事务命令的集合,也正因为redis事务不支持回滚才使得redis的事务可以保持简洁和快速。在十五执行过程中可以使用watch名流那个对指定的键的状态进行监控;
     监控一个或者多个键,当被监控的键值被修改后阻止之后的一个事务的执行 但是不能保证其它客户端不修改这一键值,所以我们需要在事务执行失败后重新执行事务中的命令。
  注意: 执行完事务的exec命令之后,watch就会取消对所有键值的监控
    命令:
     multi    事务开始
  .....
  exec    事务结束,开始执行事务中的命令
  discard    放弃事务
    错误处理:
     1:语法错误:致命的错误,事务中的所有命令都不会执行
  2:运行错误:不会影响事务中其他命令的执行
    应用场景:
  一组命令必须同时都执行,或者都不执行。
  我们想要保证一组命令在执行的过程之中不被其它命令插入。
三、数据的排序(sort)
  sort命令可以对列表类型,集合类型和有序集合类型,进行排序。
 命令:
 sort key [desc] [limit offset count]
    sort list desc
    sort list limit 0 2 排序,从0开始取2条数据
    sort list store tmp_list 排序后保存到tmplist里面
    以上是对数字的排序
    对字符排序如下:
    sort list alpha      按照字典排序
    by 参考键(参考键可以是字符串类型或者是hash类型的某个字段,hash类型的格式为:键名->字段名)
    如果参考键中不带*号则不排序
    如果某个元素的参考键不存在,则默认参考键的值为0
    举例:
    list(1,2,3,4)
    set score:1 20 score:2 68 score:3 56 score:4 88
    sort list by score:*
    
    lpush list 2 1 4 3
    hmset post:1 title one time 13332190
     hmset post:2 title two time 13332190
     hmset post:3 title three time 13332190
     hmset post:4 title four time 13332190

    sort list by post:*->time desc 根据时间排序
     sort list by post:*->time get post:*->title get post:*->time  get # 连同排序字段也返回
  扩展 get参数(上面已经用过了)
  get参数的规则和by参数的规则一样
  get # (返回元素本身的值)
  扩展 store参数
  使用store 参数可以把sort的排序结果保存到指定的列表中
  性能优化
  1:尽可能减少待排序键中元素的数量
  2:使用limit参数只获取需要的数据
  3:如果要排序的数据数量很大,尽可能使用store参数将结果缓存。
四、redis中的config命令
     使用config set可以动态设置参数信息,服务器重启之后就失效了。
  config set appendonly yes
  config set save "90 1 30 10 60 100"
  使用config get可以查看所有可以使用config set命令设置的参数
  config get *
  使用config rewrite命令对启动 Redis 服务器时所指定的 redis.conf 文件进行改写(Redis 2.8 及以上版本才可以使用),主要是 把使用config set动态指定的命令保存到配置文件中。
  config rewrite
  注意:config rewrite命令对 redis.conf 文件的重写是原子性的, 并且是一致的: 如果重写出错或重写期间服务器崩溃, 那么重写失败, 原有 redis.conf 文件不会被修改。 如果重写成功, 那么 redis.conf 文件为重写后的新文件。

© 著作权归作者所有

ivan-Zhao
粉丝 10
博文 33
码字总数 29110
作品 0
深圳
程序员
私信 提问
redis学习笔记(三)之其他命令和特性

redis学习笔记(一)之安装测试 redis学习笔记(二)之数据类型 一、基本特性 1、reids 默认端口:6379; 2、默认支持16个数据库,建立连接后自动选择0号数据库,建议不同的应用使用不同的r...

憨豆公子
2016/08/19
44
0
Redis高级特性及应用场景

redis中键的生存时间(expire) Redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它。 过期时间可以设置为秒或者毫秒精度。 过期时间分辨率总是 1 毫秒。 过期信息被...

chaoluo001
2017/07/06
0
0
redis学习笔记一

Redis启动 两个常用的redis启动命令 redis-server 即启动redis的服务器 redis-cli 启动redis自带的客户端 停止redis命令: redis-cli SHUTDOWN 相关命令 EXISTS bar 判断键值是否存在(返回值...

独特55
2016/03/04
46
0
Redis学习笔记——初级

原文地址:http://www.cnblogs.com/kaituorensheng/p/5244347.html 阅读目录 1. Redis是什么、特点、优势 2. redis安装(Linux)、启动、退出、设置密码、远程连接 3. Reis key 4. Redis数据...

引鸩怼孑
2016/05/30
62
0
Redis学习笔记之Redis数据类型(四)

Redis的五大数据类型 1.1 String(字符串) String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。 string类型是二进制安全的。意思...

残风vs逝梦
2016/08/07
67
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
2
0
前端技术之:webpack热模块替换(HMR)

第一步:安装HMR中间件: npm install --save-dev webpack-hot-middleware 第二步:webpack配置中引入webpack对象 const webpack = require('webpack’); 第三步:增加devServer配置项: ho......

popgis
昨天
2
0
死磕 java线程系列之线程池深入解析——体系结构

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 Java的线程池是块硬骨头,对线程池的源码做深入研究不仅能提高对Java整个并发编程的理解,也能提高自己...

彤哥读源码
昨天
4
0
虚函数表 图解

虚函数表 图解 p504

天王盖地虎626
昨天
3
0
java反射

学习目标  什么是反射  反射运行原理  了解反射机制的相关类  获取 class 对象的 3 种方式  通过反射获取构造方法并使用  通过反射获取成员变量并调用  通过反射获取成员方法并...

流川偑
昨天
4
2

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部