Maven仓库
1. keys 格式:keys {pattern} 返回满足给定pattern的所有key。 2. exists 格式:exists 'key' 判断key是否存在。
1. zadd 格式:zadd 'name' {num} 'value' 往名字为name的sorted set里面添加value。num为元素的顺序值,如果添加的num已经存在,也不会覆盖原有的值,会有同一个num有两个不同的值。但可以给已经存在的value一个新的num值。 2. zrange 格式:zrange 'name' {num1} {num2} [withscores] 获得名字为name的sorted set里面{num1}到{num2}下标的元素。加withscores会输出顺序号。
1. sadd 格式:sadd 'name' 'value' 往名字为name的set里面添加value。 2. smembers 格式:smembers 'name' 返回名字为name的set里面的所有value。
1. lpush 格式:lpush 'name' 'value' 往名字为name的list里面压入value,返回list里面现有的元素个数。从头压入从头出,先压入的后出。 2. lrange 格式:lrange 'name' {num1} {num2} 获得名字为name的list里面{num1}到{num2}下标的元素。num<0表示倒数。
1. hset 格式:hset 'name' 'key' 'value' 添加一个名为name对象,里面含有key-value的键值对。 2. hget 格式:hget 'name' 'key' 获得名为name对象key的value值。
1. set 格式:set 'key' 'value' 添加一个String类型的键值对。 2. get 格式:get 'key' 获得key对应的String类型value值,找不到则返回nil。
MyISAM引擎可以使用key_buffer_size来缓存索引,而innoDB则可以使用innodb_buffer_pool_size来实现该功能。但innodb_buffer_pool_size跟key_buffer_size不同的地方在于,innodb_buffer_pool_size同时缓存数据块和索引。
为了最小化磁盘的IO,MyISAM存储引擎的表使用key cache来缓存索引块,索引块的缓存大小由key_buffer_size参数来设置,如果数据库中使的表以MyISAM存储引擎为主,则应该适当增加该参 数的值,以便尽可能的缓存索引块,提高访问的速度。 默认情况下,所有的索引都使用相同的key cache,当访问的索引不在缓存中时,使用LRU(Least Recently Used最近最少使用)算法来替换缓存中最近最少使用的索引块,为了进一步避免对key cache的争用,从MSQL5.1开始,可以设置多个key cache,并为不同的索引键指定使用的key cache。 记住:key_buffer_size只能在MyISAM存储引擎使用。
有时候我们希望MySQL能够在启动时做一些数据库的操作,比如把索引加入cache等等。因为有些配置会在MySQL重启后失效,重启后我们就可以通过init_file这个参数让MySQL重新执行一些SQL语句。
树形结构是数据结构中最基础的结构之一,而二叉树又是基础中的基础。所以这篇文章我们来介绍介绍二叉树的结构和基本的遍历方法。
我们都知道,MyISAM引擎使用的是表锁,而innoDB最小粒度为行锁。但在实际使用中我们有时发现就算我们操作的是不同行的数据,还是会发生锁表。我们先来看一个例子。
在默认情况下,一旦RabbitMQ重启的话,我们定义的exchange和queue都会消失,在queue里面的消息也自然消失的无影无踪。这样肯定是不合理的,毕竟谁都无法保证RabbitMQ服务器永远不用重启,也永远不会出故障。那么怎么保证在RabbitMQ服务器重启后消息不会丢失呢?这里我们就要用到RabbitMQ的持久化。
在RabbitMQ中有一个vhost的概念,vhost就相当于一个个MINI版的RabbitMQ服务器,在一个RabbitMQ服务器上可以创建多个vhost,他们有自己的权限控制机制,我们可以让不同的用户拥有访问不同vhost的权限。更简单的说就好像一个操作系统上运行的多个虚拟机。
今天我们来学习最后一个交换器类型:topic。direct是放到exchange绑定的一个queue里,fanout是放到exchange绑定的所有queue里。那有没有放到exchange绑定的一部分queue里,或者多个routing key可以路由到一个queue里呢,那就要用到topic类型的exchange。
这篇文章主要介绍下fanout类型的exchange。fanout,顾名思义,就是像风扇吹面粉一样,吹得到处都是。如果使用fanout类型的exchange,那么routing key就不重要了。因为我们向exchange发送消息时用不着指定routing key,它会把消息给每个绑定到该exchange的queue发一份。
在RabbitMQ入门(一)里我们讲到exchange有三种最主要的类型:direct、fanout和topic。 这里我们先来看看最简单的direct交换器的使用。
RabbitMQ都安装了好一阵子,但一直没有时间去学习。今天正式开始进入RabbitMQ的学习,通过博文把自己的一些学习心得记录下来,以备以后查阅。由于自己也是从零开始入门,所以这里不会涉及到很深的理论知识,毕竟先要学会如何使用。关于RabbitMQ是什么,有哪些用处,大家可以自行Google。
最后这篇文章我们来讨论开发中最常用的剩下三种事务传播机制:REQUIRED、REQUIRES_NEW和NESTED
上面我们讨论了NEVER和MANDATORY的作用,下面我们接着讨论其他情况。 3. SUPPORTS 如果有事务则加入该事务,如果没有存在的事务则以非事务的方式运行。 我们先让insertSubTable方法在无事务的情况下运行。配置文件为:
Spring有7种事务传播机制,本文主要用实例说明各种传播机制的事务效果,和发生异常的回滚方式。7种事务传播机制网上的资料大多都是如下的描述:
本文主要通过大量的实例截图,来通俗的讲解MySQL的四种事务隔离级别的效果。关于事务隔离级别的概念以及不同隔离级别会引发的问题,大家可以自行百度,此处不再赘述。
我们在用eclipse开发web应用时,会导入很多第三方jar包。代码编译没有任何问题,但用eclipse启动server时却发现很多类找不到。有可能就是因为这些第三方jar包虽然在buildpath里,但在部署项目时并未自动拷贝到tomcat中。
evict()、clear()和flush()方法是Hibernate缓存的3种基本操作方法,本文主要介绍这3种方法的使用方式和具体区别。
<label>是我们经常是用到的标签,一般用在<input>标签之前,用来指示该输入框需要的信息。但<label>标签还有个for属性,可以关联<input>的id属性。那for属性究竟是用来干什么的呢,我们来看看下面的场景:
<fieldset>可以将form中的各种不同的表单域进行分组,并默认使用边框将不同的fieldset围起来。而<legend>就是显示在边框上的各个组的名称。下面是代码和效果图,一看就明白了。
Hibernate一级缓存又称为“Session的缓存”。Session的缓存是事务范围的缓存(Session对象的生命周期通常对应一个数据库事务或者一个应用事务)。一级缓存中,持久化类的每个实例都具有唯一的OID。下面我们用实例来看看Hibernate一级缓存的使用:
MySQL有三种锁:表级锁、行级锁和页面锁。BDB支持页面锁,MyISAM支持表级锁,而innoDB则支持表锁和行级锁。这篇文章主要介绍MYISAM引擎的表锁。
1. procedure analyse() 该方法可以让MySQL根据你当前表实际的数据存储情况,给出相关的修改建议。具体语法为:
1. show procedure status like '存储过程名称' -- 查询存储过程的基本信息。
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号