草庐IT

【StringRedisTemplate常见用法】

啾啾酒 2023-04-27 原文

文章目录

目录

一、StringRedisTemplate是什么?

二、使用方法

1.构造方法

2.常用操作方法 

2.1从RedisTemplate继承的方法

2.2从RedisAccessor继承的方法

2.3从Object继承的方法

2.4从RedisOperations继承的方法

3.常见使用方法 


一、StringRedisTemplate是什么?

StringRedisTemplate继承自RedisTemplate类,实现了BeanClassLoaderAware,Aware,InitializingBean,RedisOperations<K, V>接口。StringRedisTemplate是RedisTemplate以字符串为中心的扩展,由于针对 Redis 的大多数操作都是基于字符串的,因此此类提供了一个专用类。StringRedisTemplate是默认采用的是String的序列化策略,保存的key和value都是采用此策略序列化保存的。

二、使用方法

1.构造方法

StringRedisTemplate提供了两个构造方法:

方法描述
StringRedisTemplate()
构造一个新StringRedisTemplate实例。
StringRedisTemplate(RedisConnectionFactory connectionFactory)
构造一个StringRedisTemplate可以使用的新实例。

2.常用操作方法 

2.1从RedisTemplate继承的方法(方法实在太多,感兴趣的可以去官网了解下)

 ​​​​​​afterPropertiesSetboundGeoOpsboundHashOpsboundListOpsboundSetOpsboundStreamOpsboundValueOpsboundZSetOpsconvertAndSendcopycountExistingKeyscreateRedisConnectionProxydeletedeletediscarddumpexecexecexecRawexecuteexecuteexecuteexecuteexecuteexecuteexecutePipelinedexecutePipelinedexecutePipelinedexecutePipelinedexecuteWithStickyConnectionexpireexpireAtgetClientListgetDefaultSerializergetExpiregetExpiregetHashKeySerializergetHashValueSerializergetKeySerializergetStringSerializergetValueSerializerhasKeyisEnableDefaultSerializerisExposeConnectionkeyskillClientmovemultiopsForClusteropsForGeoopsForHashopsForHyperLogLogopsForListopsForSetopsForStreamopsForStreamopsForValueopsForZSetpersistpostProcessResultrandomKeyrenamerenameIfAbsentrestorescansetBeanClassLoadersetDefaultSerializersetEnableDefaultSerializersetEnableTransactionSupportsetExposeConnectionsetHashKeySerializersetHashValueSerializersetKeySerializersetScriptExecutorsetStringSerializersetValueSerializerslaveOfslaveOfNoOnesortsortsortsortsorttypeunlinkunlinkunwatchwatchwatch

2.2从RedisAccessor继承的方法

方法描述
getConnectionFactory()返回连接工厂。
getRequiredConnectionFactory()如果未设置连接工厂,则返回必需的RedisConnectionFactory或抛出IllegalStateException
setConnectionFactory(RedisConnectionFactory connectionFactory)设置连接工厂。

2.3从Object继承的方法

cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

2.4从RedisOperations继承的方法

返回类型方法描述
default Booleanexpire(K key, Duration timeout)为给定的生活设定时间key。
Booleanexpire(K key, long timeout, TimeUnit unit)为给定的生活设定时间key。
BooleanexpireAt(K key, Date date)将给定的到期时间设置key为日期时间戳。
default BooleanexpireAt(K key, Instant expireAt)将给定的到期时间设置key为日期时间戳。
default voidrestore(K key, byte[] value, long timeToLive, TimeUnit unit)创建key使用serializedValue,之前获得使用dump(Object)。
voidrestore(K key, byte[] value, long timeToLive, TimeUnit unit, boolean replace)创建key使用serializedValue,之前获得使用dump(Object)。

3.常见使用方法 

//检查key是否存在,返回boolean值

1.stringRedisTemplate.hasKey(String key)

//根据key获取缓存中value

2.stringRedisTemplate.opsForValue().get(Object key)

//截取key键对应缓存中的字符串,从开始下标位置开始到结束下标的位置(包含结束下标)

3.stringRedisTemplate.opsForValue().get(String key,long start,long end)

//向缓存中存入key值对应的value数据

4.stringRedisTemplate.opsForValue().set(String key,String value)

//覆盖从指定位置开始的值

5.stringRedisTemplate.opsForValue().set(String key,String value,long offset)

//向缓存中存入数据,并指定过期时间

6.stringRedisTemplate.opsForValue().set(String key,String value,Duration timeout)

//向缓存中存入数据,并指定过期时间

7.stringRedisTemplate.opsForValue().set(String key,String value,long timeout,TimeUnit unit)

//向缓存中存入数据,以map形式存储

8.stringRedisTemplate.opsForHash().putAll(String key,Map<?,?> m);

//向缓存中存入数据

9.stringRedisTemplate.opsForHash().put(String key,Object hashkey,Object value);

//删除缓存

10.stringRedisTemplate.delete(String key,Object ...hashkeys);

//以增量形式存储

11.stringRedisTemplate.opsForValue().increment(String key);

//以增量的方式将long值存储在变量中,相当于一个计数器(计算 +)

12.stringRedisTemplate.opsForValue().increment(String key,long delta);

//以增量的方式将double值存储在变量中,相当于一个计数器(计算 +)

13.stringRedisTemplate.opsForValue().increment(String key,double delta);

//获取key对应的map

14.stringRedisTemplate.opsForHash().entries(String key)

//设置过期时间

15.stringRedisTemplate.expire(String key,Duration timeout)

16.stringRedisTemplate.expire(String key,long timeout,TimeUnit unit)

有关【StringRedisTemplate常见用法】的更多相关文章

  1. git使用常见问题(提交代码,合并冲突) - 2

    文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g

  2. ruby - 将对象设置为 nil 是否很常见? - 2

    我正在构建一个应用程序,想知道是否将未使用的对象设置为nil是生产级编码中的常见做法。我知道这只是垃圾收集器的提示,并不总是处理对象。 最佳答案 根据这个thread如果您使用完一个成员对象,将其设置为nil将引发被引用对象被垃圾回收。如果它是局部变量,方法exit将做同样的事情。也就是说,如果您要求将成员显式设置为nil,我会质疑您的设计。 关于ruby-将对象设置为nil是否很常见?,我们在StackOverflow上找到一个类似的问题: https://

  3. ruby - 变量赋值后的 if 语句 - 有多常见? - 2

    我最近与一位同事讨论了以下Ruby语法:value=ifa==0"foo"elsifa>42"bar"else"fizz"end我个人并没有看到太多这种逻辑,但我的同事指出,这实际上是一种相当普遍的Rubyism。我试着用谷歌搜索这个主题,但没有找到任何文章、页面或SO问题来讨论它,这让我相信这可能是一种非常实际的技术。然而,另一位同事发现语法令人困惑,而是将上面的逻辑写成这样:ifa==0value="foo"elsifa>42value="bar"elsevalue="fizz"end缺点是value=的重复声明和隐式elsenil的丢失,如果我们想使用它的话。这也感觉它与Ruby

  4. ruby - 有人可以解释一下在 Ruby 中注入(inject)的真实、通俗易懂的用法吗? - 2

    我正在学习Ruby,遇到了inject。我正处于理解它的风口浪尖,但当我是那种需要真实世界的例子来学习一些东西的人时。我遇到的最常见的例子是人们使用inject来添加一个(1..10)范围的总和,我不太关心这个。这是一个任意的例子。在实际程序中我会用它做什么?我正在学习,所以我可以继续使用Rails,但我不必有一个以Web为中心的示例。我只需要一些我可以全神贯注的目标。谢谢大家。 最佳答案 inject有时可以通过它的“其他”名称reduce更好地理解。它是一个对Enumerable进行操作(迭代一次)并返回单个值的函数。它有许多有

  5. ruby - 使用法拉第上传文件 - 2

    我在尝试使用Faraday将文件上传到网络服务时遇到问题。我的代码:conn=Faraday.new('http://myapi')do|f|f.request:multipartendpayload={:file=>Faraday::UploadIO.new('...','image/jpeg')}conn.post('/',payload)尝试发布后似乎没有任何反应。当我检查响应时this是我所看到的:#:post,:body=>#,#,@opts={}>,#],@index=0>>,#>],@ios=[#,#,@opts={}>,#],@index=0>,#],@index=0>

  6. ruby - rspec: raise_error 用法来匹配错误信息 - 2

    我使用raise(ConfigurationError.new(msg))引发错误我试着用rspec测试一下:expect{Base.configuration.username}.toraise_error(ConfigurationError,message)但这行不通。我该如何测试呢?目标是匹配message。 最佳答案 您可以使用正则表达式匹配错误消息:it{expect{Foo.bar}.toraise_error(NoMethodError,/private/)}这将检查NoMethodError是否由privateme

  7. 常见网络安全产品汇总(私信发送思维导图) - 2

    安全产品安全网关类防火墙Firewall防火墙防火墙主要用于边界安全防护的权限控制和安全域的划分。防火墙•信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙是一个由软件和硬件设备组合而成,在内外网之间、专网与公网之间的界面上构成的保护屏障。下一代防火墙•下一代防火墙,NextGenerationFirewall,简称NGFirewall,是一款可以全面应对应用层威胁的高性能防火墙,提供网络层应用层一体化安全防护。生产厂家•联想网御、CheckPoint、深信服、网康、天融信、华为、H3C等防火墙部署部署于内、外网编辑额,用于权限访问控制和安全域划分。UTM统一威胁管理(Un

  8. 关于Qt程序打包后运行库依赖的常见问题分析及解决方法 - 2

    目录一.大致如下常见问题:(1)找不到程序所依赖的Qt库version`Qt_5'notfound(requiredby(2)CouldnotLoadtheQtplatformplugin"xcb"in""eventhoughitwasfound(3)打包到在不同的linux系统下,或者打包到高版本的相同系统下,运行程序时,直接提示段错误即segmentationfault,或者Illegalinstruction(coredumped)非法指令(4)ldd应用程序或者库,查看运行所依赖的库时,直接报段错误二.问题逐个分析,得出解决方法:(1)找不到程序所依赖的Qt库version`Qt_5'

  9. 【ChatGPT】ChatGPT 的 N 种用法 - 2

    目录ChatGPT简介技术原理应用未来发展ChatGPT的10 种用法ChatGPT简介ChatGPT是一种基于深度学习的大型语言模型,由OpenAI公司开发。技术原理GPT是GenerativePre-trainedTransformer的缩写,意为生成式预训练变压器。它的技术原理是使用了一个基于注意力机制的变压器(Trans

  10. ruby - 是否有 Rack::Session::Cookie 用法的基本示例? - 2

    我找不到任何使用Rack::Session::Cookie的简单示例,并且希望能够将信息存储在cookie中,并在以后的请求中访问它并让它过期.这些是我能找到的唯一示例:HowdoIset/getsessionvarsinaRackapp?http://rack.rubyforge.org/doc/classes/Rack/Session/Cookie.html这是我得到的:useRack::Session::Cookie,:key=>'rack.session',:domain=>'foo.com',:path=>'/',:expire_after=>2592000,:secret=

随机推荐