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。
当MySQL接收到一条select类型的query时,MySQL会对这条query进行hash计算而得到一个hash值,然后通过该hash值到query cache中去匹配,如果没有匹配中,则将这个hash值存放在一个hash链表中,同时将query的结果集存放进cache中,存放hash值的链表的每一个hash节点存放了相应query结果集在cache中的地址,以及该query所涉及到的一些table的相关信息;如果通过hash值匹配到了一样的query,则直接将cache中相应的query结果集返回给客户端。如果MySQL任何一个表中的任何一条数据发生了变化,便会通知query cache需要与该table相关的query的cache全部失效,并释放占用的内存地址。
MyISAM引擎可以使用key_buffer_size来缓存索引,而innoDB则可以使用innodb_buffer_pool_size来实现该功能。但innodb_buffer_pool_size跟key_buffer_size不同的地方在于,innodb_buffer_pool_size同时缓存数据块和索引。
table_open_cache参数表示数据库打开表的缓存数量,即表的高速缓存。每个连接进来,都会至少打开一个表缓存。例如,对于 200 个并行运行的连接,应该让表的缓存至少有 200 × N ,这里 N 是应用可以执行的SQL语句中所需要表的最大数量。此外,还需要为临时表和文件保留一些额外的文件描述符。
为了最小化磁盘的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的持久化。
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号