Morning Cat

白茶清欢无别事 我在等风也等你

Redis 五种基本类型及操作

strings : valus is string hashes : value is hashmap lists : value is 双向链表 sets : value is 无序集合 sorted set : value is 有序集合 参考:https://my.oschina.net/mengzhang6/blog/2875820 string 1. ...

DCL 为什么还需要 volatile

DCL Double-checked locking 双重检查锁定模式 双重检查锁定模式首先验证锁定条件(第一次检查),只有通过锁定条件验证才真正的进行加锁逻辑并再次验证条件(第二次检查)。 为多线程环境中的单例模式实现“惰性初始化”。 // Broken multithreaded version // "Double-Checked Locking" idiom class Fo...

Distributed locks with Redis

在许多环境中,不同的进程必须以互斥的方式使用共享资源进行操作时,分布式锁是非常有用的解决方案。 有许多库和博客文章描述了如何使用 Redis 实现 DLM(Distributed Lock Manager),但是每个库都使用不同的方法,与使用稍微复杂一些的方法相比,许多库使用的方法具有较低的保证设计。 该页面试图提供一种更规范的算法来实现 Redis 的分布式锁。我们提出了一种称为 Re...

Redis 驱逐策略 梳理总结

1. redis 内存容量 64 位系统,默认没有内存限制 32 位系统,3GB 的隐式内存限制 redis.conf 进行动态配置 将 maxmemory 设置为 0 将导致没有内存限制 # Set a memory usage limit to the specified amount of bytes. # When the m...

Using Redis as an LRU cache

Using Redis as an LRU cache LRU Least Recently Used 即最近最少使用 将Redis用作缓存时,通常很方便的做法是在添加新数据时自动将旧数据逐出。此行为在开发人员社区中是众所周知的,因为它是流行的内存缓存系统的默认行为。 LRU 实际上只是支持的驱逐方法之一。此页面涵盖了 Redis maxmemory 指令更加一般的主题,该指令用于将内...

Java8 Document

The Java™ Tutorials Java Platform Standard Edition 8 Documentation Java SE API 和文档 JDK 下载 Java8 Documentation About Java SE 8 What’s New (Features a...

Python 下的虚拟环境的使用

虚拟环境分类 pyenv: 多个解释器,Python不同版本的隔离 pyvenv: 一个解释器,项目隔离(包隔离) python3.4开始自带默认(常用) virtualenv: 一个解释器,项目隔离(包隔离),第三方pypi。支持 2.6~3.5 版本 pyvenv 使用 pip install pyvenv # 安装,python3.4默认安装 m...

JDK8 新的时间日期 API

参考:https://docs.oracle.com/javase/8/docs/api/index.html 概念 基本概念 时刻:所有计算机系统内部都用一个整数表示时刻,这个整数是距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数,可以理解时刻就是绝对时间,它与时区无关,不同时区对同一时刻的解读,即年月日时分秒是不一样的; 时区:同一时刻,世界上各个地区的时间可能...

关于 Java8 中的 SCFP 和 Stream 梳理

1. SCFP Supplier Consumer Function Predicate Supplier 提供者 @FunctionalInterface public interface Supplier<T> { T get(); } Supplier 扩展 BooleanSupplier 提供Boolean Double...

ReactiveX 操作符

ReactiveX的每种编程语言的实现都实现了一组操作符的集合。不同的实现之间有很多重叠的部分,也有一些操作符只存在特定的实现中。每种实现都倾向于用那种编程语言中他们熟悉的上下文中相似的方法给这些操作符命名。 创建操作 创建Observable的各种方法。 just( ) — 将一个或多个对象转换成发射这个或这些对象的一个Observable from( ) — 将一个Ite...