温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

redis特性是什么呢

发布时间:2021-11-11 17:21:03 来源:亿速云 阅读:102 作者:柒染 栏目:云计算

今天就跟大家聊聊有关redis特性是什么呢,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一、键的生存时间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 文件为重写后的新文件。

看完上述内容,你们对redis特性是什么呢有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI