<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg>
讯享网
讯享网
通过该帮助命令就可以看到Redis的通用命令。
常见的有下面这几种。
- KEYS 查看符合模板的所有key
后面KEY跟的东西可以去变,比如说a*就是查询a开头的key。但是不建议在生产环境设备上使用,因为redis是单线程的,并且模糊查询给机器带来的负担是比较大的。
- DEl 删除一个指定的key
讯享网
这样就会删除一个name键。若是DEL key1 key2 key3,就是删除三个key,返回的结果是删除成功的个数。
- EXITS 判断key是否存在
存在的话返回1,不存在的情况返回0
- EXPIRE 给一个key设置有效期,有效期到期的时候,key会自动的被删除
讯享网
这就给key设置了3秒的生存期,三秒到了之后就会进行删除。想要看key还剩下多少秒进行存活可以使用TTL key命令来看,返回-1代表永久存在。
Redis是一个Key-value的数据库,Key一般是String类型,但是Value的类型是多种多样的。

String
String类型,也就是字符串类型,是Redis当中最简单的存储类型,他的Value是字符串,根据字符串类型的不同可以分为三类,String:普通字符串,int:整数类型,可以自增自减,float:浮点类型,可以自增自减。
下面是常见的String命令

Redis的key允许有多个单词形成层级结构,多个单词之间使用‘:’隔开,格式如下
讯享网

可以看到形成了层级结构
Hash
Hash类型,也叫散列,其Value是一个无序结构,类似于Java当中的HashMap结构。String类型是将对象序列化为JSON字符串之后存储,当需要修改对象的某个字段的时候很不方便。

Hash可以将对象的每个字段独立存储,可以针对单个字段进行CRUD
下面是Hash的常用命令

讯享网


List
Redis当中的List类型与Java当中的LinkedList类似,可以看做一个双向链表结构,可以正向检索,也可以反向检索。
他是有序的,元素可以重复,插入和删除快,查询速度一般,通常用于存储有序数据
下面是一些常用命令

BLPOP和BRPOP不会立即返回nil,而是会等待一段时间,类似于阻塞队列的样子。
讯享网

Set
Redis当中的Set结构与Java当中的HashSet类似,可以看做是一个value为null的HashMap,具备与HashMap类似的特征,比如无序,元素不可重复,查找快,支持交集,并集,差集等功能。
下面是常见的命令

案例练习

SortedSet
Resid 的SortSet是一个可排序的集合,与Java当中的TreeSet有些类似,但是底层的数据结构差距缺很大。SortSet的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的是一个跳表(SkipList)加hash表。
SortSet具有可排序,查询快,元素不重复的特点。

下面是常见命令

如果想达到降序的目的就在Z后面添加REV即可,比如ZREVRANK就是升序排名,以此类推…
讯享网

连接
是 JUnit 测试框架中的一个注解,用于标记在每个测试方法执行之前需要运行的代码。这个注解通常用于设置测试环境、初始化测试数据或者执行一些前置条件检查,以确保每个测试方法都能在一个干净、一致的状态下运行
测试
讯享网

测试后释放资源
坏处以及处理措施
Jedis本身是线程不安全的,并且频繁的创建和销毁线程连接会有性能损耗,因此我们推荐使用Jedis连接池来替代Jedis的直连方式
讯享网
SpringData是Spring当中数据操作的模块,包括对各种数据库的集成,其中对Redis的集成模块就叫做SpringDataRedis。
先对该项目进行配置,引入依赖
编写匹配文件
讯享网
进行代码测试
返回值成功,测试成功。
但是我们进入Redis时会发现变成这样子

这是因为java程序当中存入的key和value会被当成对象,被redis底层的默认序列化方法:jdk序列化工具jdkSerializationRedisSerialliszer
jdk的序列化方式是将数据转化为字节然后再存入redis当中。
我们可以通过改变RedisTemplate的序列化方式来解决问题。
讯享网
的序列化
template.setKeySerializer(RedisSerializer.string());
template.setHashKeySerializer(RedisSerializer.string());
//设置Value的序列化
template.setValueSerializer(jackson2JsonRedisSerializer);
template.setHashValueSerializer(jackson2JsonRedisSerializer);
//返回
return template;
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/208076.html