Redis五大类型:字符串(String)、哈希/散列/字典(Hash)、列表(List)、集合(Set)、有序集合(sorted set)五种
Controller:@Resource RedisTemplate<String, String> redisTemplate;
总括:
redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set String:
1.redisTemplate.opsForValue().set(key,value)); 
2.redisTemplate.opsForValue().get(key));
3.redisTemplate.opsForValue().get(key, start, end);
4.redisTemplate.opsForValue().getAndSet(key, value);
5.redisTemplate.opsForValue().getBit(key, offset);//下方注释
6.redisTemplate.opsForValue().multiGet(keys);
7.redisTemplate.opsForValue().setBit(key, offset, value);//下方注释
8.redisTemplate.opsForValue().set(K key, V value, long timeout, TimeUnit unit);//TimeUnit是timeout的类型,如毫秒\秒\天等
9.redisTemplate.opsForValue().setIfAbsent(key, value);
10.redisTemplate.opsForValue().set(K key, V value, long offset);//博主此处未做java验证
11.redisTemplate.opsForValue().size(key));
12.redisTemplate.opsForValue().multiGet(Collection<K> keys);
13.redisTemplate.opsForValue().multiSetIfAbsent(Map<? extends K, ? extends V> m);
14.同8
15\16\17\18\19.redisTemplate.opsForValue().increment(K key, long delta);或.increment(K key, double delta);
20.redisTemplate.opsForValue().append(key, value);//在key键对应值的右面追加值value
可以看到并没有删除等方法,博主研究了一下可以这样:21.del key------21.redisTemplate.opsForValue().getOperations().delete(key);
 编号 命令 描述说明
1 SET key value 此命令设置指定键的值。
2 GET key 获取指定键的值。
3 GETRANGE key start end 获取存储在键上的字符串的子字符串。
4 GETSET key value 设置键的字符串值并返回其旧值。
5 GETBIT key offset 返回在键处存储的字符串值中偏移处的位值。
6 MGET key1 [key2..] 获取所有给定键的值
7 SETBIT key offset value 存储在键上的字符串值中设置或清除偏移处的位
8 SETEX key seconds value 使用键和到期时间来设置值
9 SETNX key value 设置键的值,仅当键不存在时
10 SETRANGE key offset value 在指定偏移处开始的键处覆盖字符串的一部分
11 STRLEN key 获取存储在键中的值的长度
12 MSET key value [key value …] 为多个键分别设置它们的值
13 MSETNX key value [key value …] 为多个键分别设置它们的值,仅当键不存在时
14 PSETEX key milliseconds value 设置键的值和到期时间(以毫秒为单位)
15 INCR key 将键的整数值增加1
16 INCRBY key increment 将键的整数值按给定的数值增加
17 INCRBYFLOAT key increment 将键的浮点值按给定的数值增加
18 DECR key 将键的整数值减1
19 DECRBY key decrement 按给定数值减少键的整数值
20 APPEND key value 将指定值附加到键
.setBit(key, offset, value):key键对应的值value对应的ascii码,在offset的位置(从左向右数)变为value.(此处感谢@参考文章对我理解的帮助),由于二进制只有0和1,此处value只能取0和1,如图,其他值是超出范围的
.getBit(key, offset):获取键对应值的ascii码的在offset处位值.
@ascii码对照表

Hash:
1.redisTemplate.opsForHash().delete(H key, Object... hashKeys);//...表示可以传入多个map的key,用,隔开。或用数组传值
2.redisTemplate.opsForHash().hasKey(key, hashKey);
3.redisTemplate.opsForHash().get(key, hashKey);
4.redisTemplate.opsForHash().entries(key);//返回map集合
5、6.redisTemplate.opsForHash().increment(H key, HK hashKey, long delta);//或increment(H key, HK hashKey, double delta);;
7.redisTemplate.opsForHash().keys(key);//返回map的key集合Set
8.redisTemplate.opsForHash().size(key);
9.redisTemplate.opsForHash().multiGet(H key, Collection<HK> hashKeys);
10.redisTemplate.opsForHash().putAll(H key, Map<? extends HK, ? extends HV> m);
11.redisTemplate.opsForHash().put(key, hashKey, value);
12.redisTemplate.opsForHash().putIfAbsent(key, hashKey, value);
13.redisTemplate.opsForHash().values(key);//返回map中的value集合List;
序号  命令 说明
1 HDEL key field2 [field2] 删除一个或多个哈希字段。
2 HEXISTS key field 判断是否存在散列字段。
3 HGET key field 获取存储在指定键的哈希字段的值。
4 HGETALL key 获取存储在指定键的哈希中的所有字段和值
5 HINCRBY key field increment 将哈希字段的整数值按给定数字增加
6 HINCRBYFLOAT key field increment 将哈希字段的浮点值按给定数值增加
7 HKEYS key 获取哈希中的所有字段
8 HLEN key 获取散列中的字段数量
9 HMGET key field1 [field2] 获取所有给定哈希字段的值
10 HMSET key field1 value1 [field2 value2 ] 为多个哈希字段分别设置它们的值
11 HSET key field value 设置散列字段的字符串值
12 HSETNX key field value 仅当字段不存在时,才设置散列字段的值
13 HVALS key 获取哈希中的所有值
List:

redisTemplate.opsForList().leftPush(key, value);//从左向右存压栈
redisTemplate.opsForList().leftPop(key);//从左出栈
redisTemplate.opsForList().size(key);//队/栈长
redisTemplate.opsForList().range(key, start, end);//范围检索,返回List
redisTemplate.opsForList().remove(key, i, value);//移除key中值为value的i个,返回删除的个数;如果没有这个元素则返回0
redisTemplate.opsForList().index(key, index);//检索
redisTemplate.opsForList().set(key, index, value);//赋值
redisTemplate.opsForList().trim(key, start, end);//裁剪,void,删除除了[start,end]以外的所有元素 
redisTemplate.opsForList().rightPopAndLeftPush(String sourceKey, String destinationKey);//将源key的队列的右边的一个值删除,然后塞入目标key的队列的左边,返回这个值
注意:要缓存的对象必须实现Serializable接口,因为 Spring 会将对象先序列化再存入 Redis,否则报异常nested exception is java.lang.IllegalArgumentException: DefaultSerializer requires a Serializable……//;;/
序号  命令 说明
1 BLPOP key1 [key2 ] timeout 删除并获取列表中的第一个元素,或阻塞,直到有一个元素可用
2 BRPOP key1 [key2 ] timeout 删除并获取列表中的最后一个元素,或阻塞,直到有一个元素可用
3 BRPOPLPUSH source destination timeout 从列表中弹出值,将其推送到另一个列表并返回它; 或阻塞,直到一个可用
4 LINDEX key index 通过其索引从列表获取元素
5 LINSERT key BEFORE/AFTER pivot value 在列表中的另一个元素之前或之后插入元素
6 LLEN key 获取列表的长度
7 LPOP key 删除并获取列表中的第一个元素
8 LPUSH key value1 [value2] 将一个或多个值添加到列表
9 LPUSHX key value 仅当列表存在时,才向列表添加值
10 LRANGE key start stop 从列表中获取一系列元素
11 LREM key count value 从列表中删除元素
12 LSET key index value 通过索引在列表中设置元素的值
13 LTRIM key start stop 修剪列表的指定范围
14 RPOP key 删除并获取列表中的最后一个元素
15 RPOPLPUSH source destination 删除列表中的最后一个元素,将其附加到另一个列表并返回
16 RPUSH key value1 [value2] 将一个或多个值附加到列表
17 RPUSHX key value 仅当列表存在时才将值附加到列表
Set:
redisTemplate.opsForValue().getAndSet(key, value)
 序号 命令 说明
1 SADD key member1 [member2] 将一个或多个成员添加到集合
2 SCARD key 获取集合中的成员数
3 SDIFF key1 [key2] 减去多个集合
4 SDIFFSTORE destination key1 [key2] 减去多个集并将结果集存储在键中
5 SINTER key1 [key2] 相交多个集合
6 SINTERSTORE destination key1 [key2] 交叉多个集合并将结果集存储在键中
7 SISMEMBER key member 判断确定给定值是否是集合的成员
8 SMOVE source destination member 将成员从一个集合移动到另一个集合
9 SPOP key 从集合中删除并返回随机成员
10 SRANDMEMBER key [count] 从集合中获取一个或多个随机成员
11 SREM key member1 [member2] 从集合中删除一个或多个成员
12 SUNION key1 [key2] 添加多个集合
13 SUNIONSTORE destination key1 [key2] 添加多个集并将结果集存储在键中
14 SSCAN key cursor [MATCH pattern] [COUNT count] 递增地迭代集合中的元素
 
 艾玛,太累了,写着写着发现不用这么麻烦,看到文章中的表了吗?若在java中找不到相应方法就对照表中的一些”字段“在java中找,肯定能找到,而且基本不会浪费多少时间。关于List与Set万能的后人补充吧!
 
 
标签: 数据库
好文要顶 关注我 收藏该文  
12
0
 
 
 
posted on 2017-03-25 18:25 张亚南 阅读(47945) 评论(2) 编辑 收藏
 

FeedBack:

 
2018-11-13 21:33 | 今晚打代码

感觉不错,顶一下
#2楼[楼主]
2018-11-14 20:22 | 张亚南

@ 今晚打代码
谢谢
 
 

springboot redis操作的更多相关文章

  1. 补习系列(14)-springboot redis 整合-数据读写

    目录 一.简介 二.SpringBoot Redis 读写 A. 引入 spring-data-redis B. 序列化 C. 读写样例 三.方法级缓存 四.连接池 小结 一.简介 在 补习系列(A3 ...

  2. SpringBoot+Redis整合

    SpringBoot+Redis整合 1.在pom.xml添加Redis依赖 <!--整合Redis--> <dependency> <groupId>org.sp ...

  3. spring boot 学习(十四)SpringBoot+Redis+SpringSession缓存之实战

    SpringBoot + Redis +SpringSession 缓存之实战 前言 前几天,从师兄那儿了解到EhCache是进程内的缓存框架,虽然它已经提供了集群环境下的缓存同步策略,这种同步仍然需 ...

  4. springboot redis简单结合

    参考: https://www.cnblogs.com/ityouknow/p/5748830.htmlhttp://blog.csdn.net/i_vic/article/details/53081 ...

  5. SpringBoot + Redis:基本配置及使用

    注:本篇博客SpringBoot版本为2.1.5.RELEASE,SpringBoot1.0版本有些配置不适用 一.SpringBoot 配置Redis 1.1 pom 引入spring-boot-s ...

  6. 【SpringBoot | Redis】SpringBoot整合Redis

    SpringBoot整合Redis 1. pom.xml中引入Redis相关包 请注意,这里我们排除了lettuce驱动,采用了jedis驱动 <!-- redis的依赖 --> < ...

  7. springboot + redis + 注解 + 拦截器 实现接口幂等性校验

    一.概念 幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次 比如: 订单接口, 不能多次创建订单 支付接口, 重复支付同一笔订单只能扣一次钱 支付宝回调接口, 可能会多 ...

  8. Springboot + redis + 注解 + 拦截器来实现接口幂等性校验

    Springboot + redis + 注解 + 拦截器来实现接口幂等性校验   1. SpringBoot 整合篇 2. 手写一套迷你版HTTP服务器 3. 记住:永远不要在MySQL中使用UTF ...

  9. SpringBoot+Redis 实现消息订阅发布

    什么是 Redis Redis 是一个开源的使用 ANSI C语言编写的内存数据库,它以 key-value 键值对的形式存储数据,高性能,读取速度快,也提供了持久化存储机制. Redis 通常在项目 ...

随机推荐

  1. Codeforces Round #585 (Div. 2) E. Marbles (状压DP)

    题目:https://codeforc.es/contest/1215/problem/E 题意:给你一个序列,你可以交换相邻的两个数,要达到一个要求,所有相同的数都相邻,问你交换次数最少是多少 思路 ...

  2. 170814关于Cookie的知识点

    1.会话控制 Http协议   Http协议两个缺陷: 1.HTTP协议是纯文本的    2.HTTP协议是无状态的 服务器不能简单的通过HTTP协议来区分多次请求是否发自同一个用户    虽然通过H ...

  3. UVA 111 历史考试

    题目描述:最长公共子序列的变形 题目序列中第i项是学生给第i号历史事件排出的序号,另外还给出了第i号历史事件的正确序号 求按照学生给出的序号排好历史事件后,所得的事件排序与历史事件实际发生的序列的最长 ...

  4. P1541乌龟棋

    传送 这题咋做? 当然是爆搜了. 但是蒟蒻不会爆搜(TLE,WA两开花qwq),更不会记忆化搜索,所以我们换个思路. 注意这句话: 这肯定是有用的(洛咕还不会闲圈到给一句毛用都没有的话),那它有什么用 ...

  5. oracle创建sequence序列语法

    在oracle中sequence就是序号,每次取的时候它会自动增加.sequence与表没有关系 1.create sequence create sequence SEQ_LOG_ID minval ...

  6. Collections -集合排序compareTo方法重写,shuffle,addall

    package cn.learn.collection.Collections; /* 排序的对象的类,实现comparable借口,重写compareto方法 若要打印必须重写toString方法, ...

  7. 《JAVA设计模式》之享元模式(Flyweight)

    在阎宏博士的<JAVA与模式>一书中开头是这样描述享元(Flyweight)模式的: Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是 ...

  8. TypeError: reduction operation 'argmin' not allowed for this dtype

    解决方法:在idxmax()前加.astype(‘float64’) .argmin() .argmax() 计算最大.小值所在位置的索引(针对自动索引的)(适用于Series类型:) .idxmin ...

  9. 什么是SpringMvc

    1.什么是SpringMvc? SpringMvc是spring的一个模块 基于MVC的一个框架 无需中间整合层来整合 什么是MVC ?mvc在b/s下的应用: 首先请求发送request请求到C(c ...

  10. forEach究竟能不能改变数组的值

    forEach究竟能不能改变数组的值 :https://blog.csdn.net/ZhengKehang/article/details/81281563 初学者每次提到Array对象的时候有些烦人 ...