redisTimplate常用方法总结

1. opsForValue()

//取出key值所对应的值
redisTemplate.opsForValue().get(key);
//获取key中字符串的子字符
redisTemplate.opsForValue().get(key, start, end);

//获取字符串的长度
redisTemplate.opsForValue().size(key)

//设置当前的key以及value值
redisTemplate.opsForValue().set(key, value);
//设置当前的key以及value值并且设置过期时间
redisTemplate.opsForValue().set(key, value, timeout, unit);
// value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始
redisTemplate.opsForValue().set(key, value, offset);
//重新设置key对应的值,如果存在返回false,否则返回true
redisTemplate.opsForValue().setIfAbsent(key, value);
//新增字符串到末尾
redisTemplate.opsForValue().append(key, value);
// 获取原来key键对应的值并重新赋新值
redisTemplate.opsForValue().getAndSet(key, value);

//批量获取值
redisTemplate.opsForValue().multiGet(keys);
//map转化redis键值对
redisTemplate.opsForValue().multiSetIfAbsent(map);//存在不处理 
redisTemplate.opsForValue().multiSet(valueMap);//强制更新

//以增量的方式将double值存储在变量中
redisTemplate.opsForValue().increment(key, double);

// key键对应的值value对应的ascii码,在offset的位置(从左向右数)变为value
redisTemplate.opsForValue().setBit(key, offset, value)
//判断指定的位置ASCII码的bit位是否为1。
redisTemplate.opsForValue().getBit(key, offset)

2. opsForHash()

//获取变量中的指定map键是否有值,如果存在该map键则获取值,没有则返回null
redisTemplate.opsForHash().get(key, hashKey);
//获取变量中的键值对
redisTemplate.opsForHash().entries(key);
//新增hashMap值
redisTemplate.opsForHash().put(key, hashKey, value);
//以map集合的形式添加键值对
redisTemplate.opsForHash().putAll(key, maps);
//hashKey不存在时添加
redisTemplate.opsForHash().putIfAbsent(key, hashKey, value);
//删除一个或者多个hash表字段
redisTemplate.opsForHash().delete(key, hashKey);
//查看hash表中指定字段是否存在
redisTemplate.opsForHash().hasKey(key, hashKey);
//给哈希表key中的指定字段的整数值加上增量increment
redisTemplate.opsForHash().increment(key, hashKey, double);
//获取所有hash表中字段
redisTemplate.opsForHash().keys(key);
//获取hash表中字段的数量
redisTemplate.opsForHash().size(key);
//获取hash表中存在的所有的值
redisTemplate.opsForHash().values(key);
//匹配获取键值对,ScanOptions.NONE为获取全部键对
redisTemplate.opsForHash().scan(key, options);//.build()不模糊拼配

3. opsForList()

//通过索引获取列表中的元素
redisTemplate.opsForList().index(key, index);
//获取列表指定范围内的元素(start开始,end 结束)
redisTemplate.opsForList().range(key, start, end);
//存储在list的头部,即添加一个就把它放在最前面的索引处
redisTemplate.opsForList().leftPush(key, value);
//在之前存值(可以是一个,也可以是一个集合)
redisTemplate.opsForList().leftPush(key, pivot, value);//如果pivot处值存在则在pivot前面添加
redisTemplate.opsForList().leftPushAll(key, values);//在最前方添加一个list
redisTemplate.opsForList().leftPushIfPresent(key, value);//如果键存在,在最前方添加
//在之后存值(可以是一个,也可以是一个集合)
redisTemplate.opsForList().rightPush(key, pivot, value);//如果pivot处值存在则在pivot后添加
redisTemplate.opsForList().rightPushAll(key, value);//在最后添加一个list
redisTemplate.opsForList().rightPushIfPresent(key, value);//如果键存在,在最后添加
//设置指定索引处元素的值
redisTemplate.opsForList().set(key, index, value)
//移除并获取列表中第一个元素
redisTemplate.opsForList().leftPop(key);
redisTemplate.opsForList().leftPop(key, timeout, unit);//设置超时
//移除并获取列表中最后一个元素
redisTemplate.opsForList().rightPop(key);
redisTemplate.opsForList().rightPop(key, timeout, unit);//设置超时
//移除集合中右边的元素,同时在左边加入一个元素。
redisTemplate.opsForList().rightPopAndLeftPush(sourceKey, destinationKey);
redisTemplate.opsForList().rightPopAndLeftPush(sourceKey, destinationKey, timeout, unit);//设置超时
//删除集合中值等于value的元素(index=0, 删除所有值等于value的元素; index>0, 从头部开始删除第一个值等于value的元素; index<0, 从尾部开始删除第一个值等于value的元素)
redisTemplate.opsForList().remove(key, index, value);
//截取
redisTemplate.opsForList().trim(key, start, end);
//获取当前key的List列表长度
redisTemplate.opsForList().size(key);

最后: set和zset不想写了,用的不多(原谅我的懒)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
package com.tiger.biz.websocket; import lombok.extern.slf4j.Slf4j; import org.java_websocket.client.WebSocketClient; import org.java_websocket.drafts.Draft_6455; import org.java_websocket.handshake.ServerHandshake; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import javax.websocket.server.ServerEndpoint; import java.net.URI; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; /** * websocket的客户端 */ @Slf4j public class DemoWebSocketClient extends WebSocketClient { @Autowired private RedisTemplate<String, String> redisTemplate; public static final String HEARTBEAT_CMD = "此处为商定的保活命令"; public DemoWebSocketClient(URI serverUri) { super(serverUri, new Draft_6455()); } @Override public void onOpen(ServerHandshake serverHandshake) { //开启心跳保活 heartbeat(this); log.info("===建立连接,心跳保活开启==="); } @Override public void onMessage(String s) { log.info("{}时来自服务端的消息:{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()), s); try { Map<Object, Object> map = redisTemplate.opsForHash().entries("zd:location"); System.out.println(map.size()+"dd"); } catch (Exception e) { e.printStackTrace(); } } @Override public void onClose(int a, String s, boolean b) { //重连 log.info("由于:{},连接被关闭,开始尝试重新连接", s); DemoReconnectThreadEnum.getInstance().reconnectWs(this); } @Override public void onError(Exception e) { log.error("====websocket出现错误====" + e.getMessage()); } /** * 心跳保活 * * @param var1 */ private void heartbeat(DemoWebSocketClient var1) { Schedul 改进以上代码怎么让 redistimplate正常注入 且URI serverUri不报错
05-30

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vace cc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值