- 博客(16)
- 资源 (25)
- 收藏
- 关注
原创 Redis(十二):进阶篇 - 持久化
前言 Redis的强劲性能很大程度上是由于其将所有数据都存储在了内存中,然而当Redis重启后,所有存储在内存中的数据就会丢失。在一些情况下,我们会希望Redis在重启后能保证数据不丢失,例如:将Redis作为数据库使用时;将Reids作为缓存服务器。这时我们希望Reids能将数据从内存中以某种形式同步到硬盘中,使得重启后可以根据硬盘中的记录恢复数据,这一过程就是持久化。 Redis支持两种方式的持久化,一种 RDB 方式,另一种是 AOF 方式。前者会根据指定的规则“定时”将内存中的数据
2021-06-30 23:43:29 255 3
原创 Redis(十一):进阶篇 - 消息通知(任务队列、发布/订阅)
任务队列 在一个私人博客网站中,粉丝关注博主需要添加自己的邮箱,以便接收邮件确认信息和通知信息;博主每发布一篇新文章时,需要向他的粉丝们同步发送邮件通知; 诸如,当页面需要进行如发送邮件、复杂数据运算等耗时较长的操作是会阻塞页面的渲染。为了避免用户等待太久,应该使用独立的线程来完成这类操作。不过一些编程语言或框架不易实现多线程,这时可以通过其他进程来实现。设想有一个进程能够完成发邮件的功能,那么在页面中只需要想办法通知这个进程向指定的地址发送邮件就可以了。 这个通知的过程可以借助任务队列来实现。
2021-06-29 23:51:22 2738 2
原创 weblogic控制台端口和应用端口分离
现状 默认情况下,weblogic控制台端口和应用端口是一样的,如下表:控制台应用http://localhost:7001/consolehttp://localhost:7001/mydemo 这种方式有利有弊;开发环境没什么问题,但是在生产环境上就会有安全问题;攻击者使用弱口令扫描工具或者直接使用常见的弱口令去尝试登录Web中间件的管理控制后台,然后通过部署war包上传,进而控制整个系统。 为了防止这种问题,需要把weblogic控制台的端口和应用端口分离,怎么
2021-06-29 15:18:49 4158
原创 Redis(十):进阶篇 - 排序SORT
排序1、有序集合的集合操作 集合类型提供了强大的集合操作命令,但是如果需要排序就要用到有序集合类型。Redis的作者在设计Redis的命令时考虑到了不同数据类型的使用场景,对于不常用到的或者在不损失过多性能的前提下可以使用现有命令来实现的功能,Redis就不会单独提供命令来实现。这一原则使得Redis在拥有强大功能的同时保持着相对精简的命令。 有序集合常见的使用场景是大数据排序,如游戏的玩家排行榜,所以很少会需要获得键中的全部数据。同样Redis认为开发者在做完交集、并集运算后不需要直接获得全部结
2021-06-28 22:14:11 1703 1
原创 mysql5.7.26:[ERR] 1118 - Row size too large (> 8126)
场景复现 在从linux服务器的Mysql库中导出全部表结构后,准备转存到本地windows上。linux的mysql版本是5.7.26,本地是5.7,还是32位的msi程序安装的(以前上学时下载的一直保留到现在 )。 在本地执行全部表结构时,出现[ERR] 1118 ,因为在linux上也出现过这个问题,查看了linux中mysql的my.cnf配置文件,将相应添加的配置添加到本地的my.ini或my-default.ini中,重启后,再次执行脚本错误依旧。 后来搜了网上的大部分方案,都是无法
2021-06-28 11:26:48 496
原创 Redis(九):进阶篇 - 过期时间
过期时间1、命令介绍 EXPIRE命令的使用方法为EXPIRE key seconds seconds参数表示键的过期时间,单位是秒。如设置key键的过期时间为20秒,即20秒后,key键自动被删除:127.0.0.1:6379> get key"333"127.0.0.1:6379> expire key 20(integer) 120秒后在设置过期时间127.0.0.1:6379> expire key 20(integer) 0127.0.0.1:637
2021-06-27 15:19:50 1416
原创 Redis(八):进阶篇 - 事务
事务(Transaction)1、概述 Redis中的事务是一组命令的集合。事务同命令一样都是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行。例如,银行转账过程中A给B汇款,首先系统从A的账户中将钱划走,然后向B的账户增加相应的金额。这两个步骤必须属于同一个事务,要么全执行,要么全不执行。否则只执行第一步,钱就凭空消失了,这显然让人无法接受。 事务的原理是先将一个事务的命令发送给Redis,然后再让Redis依次执行这些命令,如:127.0.0.1:6379> mult
2021-06-27 13:51:40 171
原创 Redis(七):基础篇 - 有序集合类型
有序集合类型(Sorted Set) 有序集合类型与上一篇的集合类型的区别就是“有序”二字。 在集合类型的基础上有序集合为集合中的每个元素都关联一个分数,这使得我们不仅可以完成插入、删除和判断元素是否存在等集合类型支持的操作,还能获得分数最高(或最低)的前N个元素、获得指定分数范围内的元素等与分数有关的操作。虽然集合中每个元素都是不同的,但它们的分数却可以相同。 有序集合类型在某些方面和列表类型有些相似: (1)二者都是有序的。 (2)二者都可以获得某一范围的元素。 但是二者有着很大
2021-06-26 22:28:38 279 1
原创 Redis(六):基础篇 - 集合类型
集合类型(Set) 在集合中每个元素都是不同的,且没有顺序;一个集合类型键可以存储至多2³² - 1个字符串。集合类型和列表类型对比特性集合类型列表类型存储内容至多 2³²- 1个字符串至多 2³² - 1个字符串有序性否是唯一性是否 集合类型的常用操作是向集合中加入或删除元素、判断某个元素是否存在等,由于集合类型在Redis内部是使用值为空的散列表(hash table)实现的,所以这些操作的时间复杂度都是O(1)。多个集合类型键指尖还可以进行
2021-06-26 15:43:18 443
原创 Redis(五):基础篇 - 列表类型
列表类型(List) Redis lists基于Linked Lists实现。这意味着即使在一个list中有数百万个元素,在头部或尾部添加一个元素的操作,其时间复杂度也是常数级别的。用LPUSH 命令在十个元素的list头部添加新元素,和在千万元素list头部添加新元素的速度相同。 那么,坏消息是什么?在数组实现的list中利用索引访问元素的速度极快,而同样的操作在linked list实现的list上没有那么快。 Redis Lists用linked list实现的原因是:对于数据库系统来说,
2021-06-25 23:21:50 301
原创 Redis(四):基础篇 - 散列类型
散列类型(Hash) 散列类型的键值是一种字典结构,其存储了字段(field)和字段值得映射,但字段值只能是字符串,不支持其他数据类型,换句话说,散列类型不能嵌套其他的数据类型。一个散列类型键可以包含至多2^32 -1个子弹。提示 除了散列类型,Redis的其他数据类型同样不支持数据类型嵌套。比如集合类型的每个元素都只能是字符串,不能是另一个集合或散列表等。 散列类型是和存储对象:使用对象类别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值。命令1、赋值与取值HSET key
2021-06-24 23:52:30 354 1
原创 Redis(三):基础篇 - 字符串类型
热身 先来几个比较基础的命令热身一下,打开redis-cli后,开始体验1、获得符合规则的键名列表KEYS patternpattern支持glob风格通配符格式,如下表:符号含义?匹配一个字符*匹配任意个(包括0个)字符[]匹配括号间的任一字符,可以使用“-”符号表示一个范围,如a[b-d]可以匹配“ab”、“ac”和“ad”\x匹配字符x,用于转移符号。如要匹配“?”,就需要使用?127.0.0.1:6379> keys *1)
2021-06-23 23:56:48 297 1
原创 Redis(二):初始篇-Linux安装Redis
“纸上得来终觉浅,绝知此事要躬行” --陆游《冬夜读书示子聿》版本规则 Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版(如2.8版,3.0版),奇数版本是非稳定版(如2.7版,2.9版),生产环境下一般需要使用稳定版本。 一、安装环境Redis是C语言编写的,所以在编译前要安装编译环境gcc[root@VM-0-17-centos ~]# yum install -y gccLoaded plugins: fastestmirror, lang.
2021-06-22 23:04:46 220 2
原创 Redis(一):初始篇-认识Redis
一、简介 Redis是一个开源的、高性能的、基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求。1.1 历史与发展 2008年,意大利的一家创业公司Merzia推出了一款基于M有SQL的网站实时统计系统LLOOGG,然而没过多久该公司的创始人Salvatore Sanfilippo便开始对MySQL的性能感到失望,于是他决定亲自为LLOOGG量身定做一个数据库,并与2009年开发完成,这个数据库就是Redis。不过Salvatore Sanfilippo并不满足只
2021-06-21 23:44:46 232
原创 oralce sql优化-包含多表not exists转left join,一个表查询重复数据
出现场景:因上一篇 Oacle锁表,ORA-00054 出现锁表的原因是由于存储过程校验执行慢导致的,因此本篇对涉及到的存储过程中涉及到,多表关联查询是否存在导入信息,一个表中根据多个字段查询是否有重复信息,进行优化优化分两部分1、根据临时表关联业务表,校验未查询到相应的人员信息原型:update contributiontemp a set a.chectoutstatus = '02', a.chectoutinfo = a.chectoutinfo || '
2021-06-16 19:17:48 667
原创 Oacle锁表,ORA-00054
出现场景:由于系统需要导入大批量excel数据,导致在调用存储过程校验时,出现长时间阻塞,导致表资源不可用,truncate等操作出现ora-00054.解决方案:1、等待释放资源因在本地环境做测试,使用存储过程校验时,执行很慢,虽然很慢,但最终还是会执行完毕,释放资源。2、强制释放资源查询被锁的对象的session_idselect session_id from v$locked_object;根据session_id查询sid, serial#SELECT sid, serial#
2021-06-16 19:02:58 206
ant-1.7.1(org.apache.tools.zip.ZipOutputStream).zip
2020-01-16
select2+jquery
2018-09-10
Java中的Base64加/解密
2018-09-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人