redis 其他特性
1、消息订阅与发布
subscribe my1 订阅频道
psubscribe my1* 批量订阅频道,订阅以my1开头的所有频道
publish my1 hello 在指定频道中发布消息,返回值为接受到信息的用户数
类似于桌面右下角的小广告
->所以这里的频道没有创建这一说
2、多数据库
redis默认有16个数据库,0, 1, 2....15
默认所有的数据操作,都是在0号数据库上操作的
切换数据库:select 数据库名
把某个键值对进行数据库移植:move key 数据库名,在当前数据库该键值对就不存在了
清空当前数据库:flushdb
清空服务器-所有数据库:flushall
3、事务
mysql事务:目的是为了保证数据完整性,安全
redis事务:目的是为了进行redis语句的批量化执行
multi 开启事务
exec 提交事务
discard 事务回滚
->当事务中某几个语句出错,程序不会自动进行事务回滚,其他语句正常执行
4、基础命令
ping 如果返回PONG,代表连接成功,否则会返回no connected
quit 退出客户端,和ctrl+c一致
dbsize 返回当前数据库中的key数量
info 可以看到服务器和连接客户端的详细详细
5、持久化
持久化:把数据保存在硬盘上
关系型数据库 mysql,任何增删改语句,都是在硬盘上做的操作
内存(兔子):高效,断电数据就会消失
硬盘(乌龟):读写速度慢于内存,断电数据依旧存在
非关系型数据库redis:
默认情况下,所有的增删改,数据都是在内存中进行操作
断电以后,redis的部分数据会丢失,丢失的数据就是保存在内存中的数据
6、redis的两种持久化策略,RDB
这是默认的策略,照快照,保存的是一种状态
20G数据 ---> 几kb快照
优点:
1)快照保存数据速度极快,还原也快
2)适用与灾难备份,例如redis服务器所在机房失火,我要赶紧儿将redis数据备份
缺点:
1)小内存机器不适合使用
RDB机制符合要求就会照快照。(随时随地启动),会占用一部分系统资源,
例如我有1G的数据,他会先将1G的数据先复制过来(此时内存就被占用2G了),进行压缩、备份、运算-->转化成dump.rdb文件
这个动作是突然的
Linux 4G
3G数据,这时进行rdb机制,很有可能因为内存不足直接宕机(宕机后,服务器会关闭,属于非正常关闭)
使用场景:内存比较充裕的计算机
->在安装目录下默认有dump.rdb
RDB何时进行照快照:
服务器正常关闭时,照快照;redis-cli shutdown
key满足一定条件时,照快照;
save 900 1
save 300 10
save 60 10000
每15分钟至少有1个key发生变化,则照快照保存
7、redis的两种持久化策略,AOF
这是使用日志功能保存数据操作
1)同步规则:
每秒同步:安全性低,比较节省系统资源->怎么个理解法
每修改同步:只要有key变化语句,就进行AOF保存数据,比较安全,但是极为浪费效率
不同步(默认):不安全
2)AOF操作:只会保存导致key发生变化的语句
3)AOF配置:
3.1)将appendonly no 改成 appendonly yes,这一步时开启AOF机制;
3.2)策略的选择:将appendfsync always的注释去掉,每次key变化就进行保存
优点:
持续性占用极少量的内存空间,只有--KB,会专门开辟一个AOF日志程序;性价比很高哟
缺点:
1)日志文件会特别大,不适用于灾难备份;最终数据不多,但是过程语句复杂;
例子:1G数据,由10G的语句生成
2)恢复效率远远低于RDB
适用场景:内存比较小的计算机,所以大公司会选择用默认RDB的方式
redis 其他特性的更多相关文章
- redis 高级特性 不要太好用
Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. ...
- 【Redis】二、Redis高级特性
(三) Redis高级特性 前面我们介绍了Redis的五种基本的数据类型,灵活运用这五种数据类型是使用Redis的基础,除此之外,Redis还有一些特性,掌握这些特性能对Redis有进一步的了解, ...
- Redis高级特性及应用场景
Redis高级特性及应用场景 redis中键的生存时间(expire) redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它. 过期时间可以设置为秒或者毫秒精度. ...
- redis的keys常用操作及redis的特性
redis的keys常用操作 1.获得所有的keys: keys * 2.可以模糊查询 keys:keys my* 3.删除keys:del mymkey1 mykey2 4.是否存在keys:ex ...
- Redis高级特性介绍及实例分析
转自:http://www.jianshu.com/p/af7043e6c8f9 Redis基础类型回顾 String Redis中最基本,也是最简单的数据类型.注意,VALUE既可以是简单的St ...
- Redis 高级特性
Redis 数据结构 Redis 常用的数据类型主要有以下五种: String Hash List Set Sorted set Redis 内部使用一个 redisObject 对象来表示所有的 k ...
- Redis的特性以及优势(附官网)
NoSQL:一类新出现的数据库(not only sql) 泛指非关系型的数据库 不支持SQL语法 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式 NoSQL的世 ...
- Redis GEO 特性在 LBS 中的应用总结
什么是LBS LBS(Location Based Service),基于位置的服务. Redis和GEO Redis 是最热门的 nosql 数据库之一,它的最大特点就是快.所以在 LBS 这种需要 ...
- redis新特性
摘自<redis 4.xcookbook> 从实例重启同步] 故障切换同步] 4.0之前从实例主键过期bug redis4新特性 Memory Command Lazy Free PSYN ...
- Redis的特性及运用
Redis特性 一个产品的使用场景肯定是需要根据产品的特性,先列举一下Redis的特点: 读写性能优异 持久化 数据类型丰富 单线程 数据自动过期 发布订阅 分布式 这里我们通过几个场景,不同维度说下 ...
随机推荐
- iOS设备,fixed布局出问题
window.deviceId = '{{$deviceId}}'; window.iOS = navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? t ...
- uwsgi 配置 初试
/************************************************************************************** * uwsgi 配置 初 ...
- memcached value最大限制只能是1M吗
关于memcached的value最大是1M的限制很多人都知道,但是如果你以为我还要说这个事情,那你就错了. 之前的老版本确实是只能是1M,但是根据git记录,其实2009年以后的版本这个value最 ...
- JVM从理论到实践
这里实践不是指动手写JVM,而是动手做实验,结合日常工作相关的部分,理论与实践结合从而对这块知识有更深入的认识. 随着Java10的到来,JVM这块也有不少调整改进,网上大部分内容都是过时或大部分开发 ...
- bzoj3626 [LNOI2014]LCA——树链剖分
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3626 思路很巧妙,把区间换成前缀和相减: 把 l ~ r 到根路径上的点的点权都+1,然后 ...
- Linux 常用命令十 which cal date
一.which命令 查找一个目录所在的路径: wang@wang:~/workpalce/python$ which ls /bin/ls 二.cal命令 wang@wang:~/workpalce/ ...
- 8.20~8.25刷散题记录 By cellur925
记录一些散题 / 价值不大但还是想记下来的题目 / 没正八经写博客的题目 8.24 Luogu P1508 沙雕题数字三角形的二维升级版,但是注意阅读理解,李大水牛从桌子最后一行下侧开始吃,而本题是自 ...
- 使用Quartz实现定时作业
该文章是系列文章 基于.NetCore和ABP框架如何让Windows服务执行Quartz定时作业 的其中一篇. Quartz是一个开源的作业调度框架,准确的称谓应该是 Quartz.Net,它是Ja ...
- poj 3159 Candies dijkstra + queue
题目链接: http://poj.org/searchproblem 题目大意: 飞天鼠是班长,一天班主任买了一大包糖果,要飞天鼠分发给大家,班里面有n个人,但是学生A认为学生B比自己多的糖果数目不应 ...
- hihoOffer收割练习20题目1
题目1 : 无根数变有根树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一棵包含 N 个节点的无根树,小Hi想知道如果指定其中某个节点 K 为根,那么每个节点的父 ...