在Java中使用redisTemplate操作缓存

  • 时间:
  • 浏览:1

好多好多 需要使用类型与上述例子中的布尔类型一段话,则需要强制转换一次。List类型则都需要使用fastjson这名工具来进行转换。转换的例子已列举在上述代码中。

控制台输出的结果如下。

Github

Spring封装了4个比较强大的模板,也要是 redisTemplate,方便在开发的事先操作Redis缓存。在Redis中都需要存储String、List、Set、Hash、Zset。下面将针对List和Hash分别介绍。

-1代表从存储容器的最右边结束,删除4个与要移除的值匹配的数据;0代表删除所有与传入值匹配的数据;1代表从存储容器的最左边结束,删除4个与要移除的值匹配的数据。

获取list中指定位置的元素。

该函数用于从redis缓存中获取指定区间的数据。具体用法如下。

值得注意的是,使用get函数获取的数据否有Object类型。

Redis中的List为简单的字符串列表,常见的有下面几种操作。

值得注意的有两点。4个是由于下标是-1一段话,则会返回List最后4个元素,那我由于数组下标越界,则会返回null

该函数用于移除上方亲们抽象的容器中的最左边的4个元素。

用于删除4个Hash键中的key。都需要理解为删除4个map中的某个key。

一并,由于连这名Hash键否有位于,redisTemplate会新建4个Hash键,再写入key。

用于写入数据。

用于截取指定区间的元素,由于你都需要理解成与range是一样的作用。看到下面的代码事先应该就会立刻理解。

用于获取4个Hash键含有有的键的数量。

用于获取数据。

存储类型为hash我我实在很好理解。在上述的List中,4个redis的Key都需要理解为4个List,而在Hash中,4个redis的Key都需要理解为4个HashMap。

当然你也都需要那我。

删除某个键。

我我实在作用完整性不一样。range是获取指定区间内的数据,而trim是留下指定区间的数据,删除没哟区间的所有数据。trimvoid,不需要返回任何数据。

用于让4个Hash键中的某个key,根据传入的值进行累加。传入的数值不到是double由于long,不接受浮点型

用于一次性向4个Hash键中加进去去多个key。

该函数用于移除上方亲们抽象的容器中的最右边的4个元素。

用法如下。

前端查询中,单次查询的匹配数据量有由于会达到上百甚至上千条,在前端中肯定是需要分页展示的。就算每次查询10条数据,整个查询也要耗时6-8s的时间。想象一下,每翻一页等10s的场景。

获取好多好多 匹配条件的Hash键中key的值。我查过这名资料,大要素写的是无法模糊匹配,我此人 尝试了一下,我我实在是都需要的。如下,使用scan模糊匹配hash键的key中,带SCAN的key。

控制台输出的结果如下。

用于向4个Hash键中写入数据。当key在Hash键中由于位于时,则不需要写入任何数据,不到在Hash键中不位于这名key时,才会写入数据。

基本和leftPush一样,只不过是一次性的将List入栈。

该函数用于操作4个键之间的数据,接受4个参数,分别是源key、目标key。该函数会将源key进行rightPop,再将返回的值,作为输入参数,在目标key上进行leftPush。具体代码如下。

用于获取4个Hash类型的键的所有值。

leftPush是同样的操作,唯一的不同是,当且仅当key位于时,才会更新key的值。由于key不位于则不需要对数据进行任何操作。

这名数据库事先在如此 使用Presto的状况下,使用的是Hive,使用Hive进行4个简单的查询,速率单位单位 由于在几分钟。当然几分钟也何必 完否有跑SQL的时间,这上方含有发请求,查询数据之前 返回数据的时间的总和。之前 即使那我,那我的速率单位单位 明显不到满足交互式的查询需求。

获取该键的集合长度。

由于亲们看懂了为何用,就都需要将redisTemplate引入项目中了。

用于以Map的格式获取4个Hash键的所有值。

用于批量的获取4个Hash键中多个key的值。

值得注意的是,当返回为空后,在redis中这名key要是 复位于了。由于此时再调用leftPushIfPresent,是无法再加进去去数据的。有代码有真相。

之前 需要新建4个RedisConfig配置文件。

用法如下。

好多好多 ,此时使用redis缓存。减少请求数据库的次数。将匹配的数据一并存入数据库。那我不到在第一次查询时耗费长这名,一旦查询完成,用户点击下一页要是 毫秒级别的操作了。

判断4个键否有位于,只需要调用hasKey就都需要了。假设这名Key是test,具体用法如下。

在最近的项目中,有4个需求是对4个很大的数据库进行查询,数据量合适在几千万条。但一并对查询速率单位单位 的要求也比较高。

亲们的下4个处里方案要是 Presto,在使用了Presto事先,查询速率单位单位 降到了秒级。之前 对于4个前端查询界面的交互式查询来说,十几秒仍然是4个不到接受的时间。

当然你也都需要那我

同rightPush,一次性将List存入。

rightPush是同样的操作,唯一的不同是,当且仅当key位于时,才会更新key的值。由于key不位于则不需要对数据进行任何操作。

之前 取数据一直从左边取,之前 存数据都需要从左也都需要从右。左要是 leftPush,右要是 rightPush。leftPush如下图所示。

用于移除键中指定的元素。接受八个参数,分别是缓存的键名,计数事件,要移除的值。计数事件都需要传入的有4个值,分别是-101

将redisTemplate注入到需要使用的地方。

我实在Presto相比Hive由于快了好多好多 (FaceBook官方宣称的是10倍),之前 对分页的支持否有很友好。我在使用的事先是此人 在后端实现的分页。

亲们把存放这名值的地方想象成如图所示的容器。

与leftPop一样,返回空事先,再调用rightPushIfPresent,是无法再加进去去数据的。

用于获取4个Hash键中否有含有某个键。

在这名状况下应用缓存实属无奈之举。讲道理,优化应从底层结束,自底而上。上层优化的方式和速率单位单位 感觉都很有局限。

用于获取4个Hash键中所有的键。

rightPush如下图所示。