博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis 五大类型用法
阅读量:6935 次
发布时间:2019-06-27

本文共 4572 字,大约阅读时间需要 15 分钟。

 
Redis五大类型:字符串(String)、哈希/散列/字典(Hash)、列表(List)、集合(Set)、有序集合(sorted set)五种 Controller:@Resource RedisTemplate
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
keys); 13.redisTemplate.opsForValue().multiSetIfAbsent(Map
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 此命令设置指定键的值。
2 获取指定键的值。
3 获取存储在键上的字符串的子字符串。
4 设置键的字符串值并返回其旧值。
5 返回在键处存储的字符串值中偏移处的位值。
6 获取所有给定键的值
7 存储在键上的字符串值中设置或清除偏移处的位
8 使用键和到期时间来设置值
9 设置键的值,仅当键不存在时
10 在指定偏移处开始的键处覆盖字符串的一部分
11 获取存储在键中的值的长度
12 为多个键分别设置它们的值
13 为多个键分别设置它们的值,仅当键不存在时
14 设置键的值和到期时间(以毫秒为单位)
15 将键的整数值增加1
16 将键的整数值按给定的数值增加
17 将键的浮点值按给定的数值增加
18 将键的整数值减1
19 按给定数值减少键的整数值
20 将指定值附加到键
.setBit(key, offset, value):key键对应的值value对应的ascii码,在offset的位置(从左向右数)变为value.(此处感谢对我理解的帮助),由于二进制只有0和1,此处value只能取0和1,如图,其他值是超出范围的 .getBit(key, offset):获取键对应值的ascii码的在offset处位值.

 

 

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
hashKeys); 10.redisTemplate.opsForHash().putAll(H key, Map
m); 11.redisTemplate.opsForHash().put(key, hashKey, value); 12.redisTemplate.opsForHash().putIfAbsent(key, hashKey, value); 13.redisTemplate.opsForHash().values(key);//返回map中的value集合List;
序号  命令 说明
1 删除一个或多个哈希字段。
2 判断是否存在散列字段。
3 获取存储在指定键的哈希字段的值。
4 获取存储在指定键的哈希中的所有字段和值
5 将哈希字段的整数值按给定数字增加
6 将哈希字段的浮点值按给定数值增加
7 获取哈希中的所有字段
8 获取散列中的字段数量
9 获取所有给定哈希字段的值
10 为多个哈希字段分别设置它们的值
11 设置散列字段的字符串值
12 仅当字段不存在时,才设置散列字段的值
13 获取哈希中的所有值
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 删除并获取列表中的第一个元素,或阻塞,直到有一个元素可用
2 删除并获取列表中的最后一个元素,或阻塞,直到有一个元素可用
3 从列表中弹出值,将其推送到另一个列表并返回它; 或阻塞,直到一个可用
4 通过其索引从列表获取元素
5 在列表中的另一个元素之前或之后插入元素
6 获取列表的长度
7 删除并获取列表中的第一个元素
8 将一个或多个值添加到列表
9 仅当列表存在时,才向列表添加值
10 从列表中获取一系列元素
11 从列表中删除元素
12 通过索引在列表中设置元素的值
13 修剪列表的指定范围
14 删除并获取列表中的最后一个元素
15 删除列表中的最后一个元素,将其附加到另一个列表并返回
16 将一个或多个值附加到列表
17 仅当列表存在时才将值附加到列表
Set:
redisTemplate.opsForValue().getAndSet(key, value)
 序号 命令 说明
1 将一个或多个成员添加到集合
2 获取集合中的成员数
3 减去多个集合
4 减去多个集并将结果集存储在键中
5 相交多个集合
6 交叉多个集合并将结果集存储在键中
7 判断确定给定值是否是集合的成员
8 将成员从一个集合移动到另一个集合
9 从集合中删除并返回随机成员
10 从集合中获取一个或多个随机成员
11 从集合中删除一个或多个成员
12 添加多个集合
13 添加多个集并将结果集存储在键中
14 递增地迭代集合中的元素
 
 艾玛,太累了,写着写着发现不用这么麻烦,看到文章中的表了吗?若在java中找不到相应方法就对照表中的一些”字段“在java中找,肯定能找到,而且基本不会浪费多少时间。关于List与Set万能的后人补充吧!  文章为转载文章,正文请看----

转载于:https://www.cnblogs.com/technologykai/articles/7737269.html

你可能感兴趣的文章
C++ cctype定义的函数 - 学习笔记(7)
查看>>
C语言:关于socket的基础知识点
查看>>
python基础知识理解
查看>>
win7下安装linux(centos6.5)双系统详细小白教程
查看>>
IIS6.0应用程序池回收和工作进程
查看>>
Android之文件数据存储
查看>>
Python框架-pygal之世界地图
查看>>
【深度学习篇】--神经网络中的调优二,防止过拟合
查看>>
javax.xml.ws.webserviceexception class do not have a property of the name
查看>>
java基础.0——Object类
查看>>
UVa 311 - Packets
查看>>
Microsoft SQL Server 查询表中有重复列值的数据 (PARENTGOODSID列值重复的行)?
查看>>
IIS出现server application error,请问怎么解决?
查看>>
RabbitMQ中RPC的实现及其通信机制
查看>>
40个Java多线程问题总结
查看>>
Python处理多行文本问题--一个简单方法读取多行fasta文件
查看>>
快速上手RaphaelJS-Instant RaphaelJS Starter翻译(一)
查看>>
win7硬盘安装ubuntu双系统——注意项
查看>>
系统二级运维之业务单据错误处理
查看>>
了解EF CodeFirst的Migrator功能与Migrator.Net对比
查看>>