数据结构和算法(三):常用对称加密算法之AES

摘要加密算法一般是用来保证数据的完整性和一致性,上一篇文章中提到了两个常用的摘要算法分别是SHA和MD5。在这篇里面,一起来学习一下一个常用的对称加密算法AES,它的主要作用是保证私密信息不被泄漏。对于这个应该都很熟悉,只要使用到对称加密,相信百分八十以上都是用AES。

数据结构和算法(二):摘要算法之SHA和MD5

MD5加密算法从使用上是很简单的,JDK有MD5的加密类,但是使用起来比较麻烦,其加密方法返回的是长度为16二进制数组,需要将二进制数组转换成16进制,然后转换成对应的字符串。另外Spring对MD5也有封装,其实就是对JDK中MD5加密类进行封装,执行上面提到的转换步骤。下面来了解一下自己实现转换和直接使用Spring封装的转换方法。

关于公司引入thingsboard项目后的一系列事情的感悟

作为一个底层的小码农来说,真的是一件很难受的事情。物联网开始进入大家的视野时间并不长,虽说thingsboard是开源的项目,但是之前都丝毫没有接触过,网上的资料也是有限。里面涉及到的新技术基本都没有看过,甚至也是第一次听。然而我们现在却要在此项目基础上做定制开发,这种感觉比被狗日了还要难受……

Redis学习笔记(七):Redis中Lua语言应用和原子性控制

Lua脚本在Redis里面使用的范围还是很广的,如从数据库中批量将数据导入到Redis中、分布式锁防止锁误删、多操作原子性要求等,这些都会用到Lua脚本。但是这里还是需要注意的是Lua只能保证原子性,不能保证事务性。另外根据对Redis的了解,其本身是提供事务机制的,但是这个事务机制在很多情况是不能回滚的(鸡肋),所以用起来也更少。这里不说具体的事务性,而是来一起看看Lua脚本实现原子操作。

Redis学习笔记(六):Redis之消息发布、订阅机制

消息的发布和订阅,第一想到的是Kafka、RabbitMQ、ActiveMQ等,但是实际上Redis也是有这个功能,这个功能在Redis中实现很简单,也比较粗暴。没有存储,没有各种订阅模式。只要订阅同一个渠道的订阅者就都可以收到发布到该渠道的信息。如果没有订阅者,消息也不会缓存起来,而是直接丢弃。在简单的功能、能够接受这种模式并且有补偿机制的业务中是可以考虑使用的。下面看一下这个到底是怎么玩的。

一起谈谈设计模式(三):单例模式4种最终版

关于单例模式有很多种实现方式,这些大家都是很熟悉了,各种博客也是写了N中方法,这些博客都看了一圈,但是很多就是一样的,有的标题是九种,其实还是那么核心的几种变来变去,还有把懒汉模式的安全和非安全分为两种,还有更厉害的是把懒汉基本写法、双重检查机制、双重检查机制+volatile三种分开,认为是三种写法,这是懒汉模式从非安全到安全的演变,完全就是一种模式,感觉完全都是在凑字数(如果这样凑,我估计能写出十几种,甚至更多)。总结一下其实只有四种,再怎么变都是离不开这四种写法。

Redis学习笔记(三):Redis应用之投票、红包

Redis基本数据类型及基本命令的使用都已经做完笔记了,接下来就需要将这些笔记实际运用到项目中啦。经常在项目中用到的就是缓存常量数据,还有一些基本的计数等操作,比如我的博客里面访问量、文章阅读量都是缓存在Redis中的,累加阅读量、访问量都是在Redis中完成,夜间定时刷入数据库的,这样就不用每次访问都去数据库中查询。基本应用没有问题,那来点稍微复杂的呢,这篇文章就让我们一起来看看其他的应用场景,将从文章投票排行榜、红包出发来依次说说具体使用何种数据结构合适。