Redis

Redis 基础、高级特性与性能调优

本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后在性能调优等方面进行更深入的介绍和指导。概述Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库、缓存服务或消息服务使用。Redis支持多种数据结构,包括字符串、哈希表、链表、集合、有序集合、...

使用jedisPool管理jedis,使用jedis操作redis

ps:jedis是redis在java中的客户端操作工具packagecom.test;23importjava.util.HashMap;4importjava.util.Iterator;5importjava.util.List;6importjava.util.Map;78importorg.junit.Bef...

Redis setNX 实现分布式锁(重复数据插入可用其来实现排他锁)

使用Redis的SETNX命令可以实现分布式锁,下文介绍其实现方法。/SETNXkeyvalue将key的值设为value,当且仅当key不存在。若给定的key已经存在,则SETNX不做任何动作。SETNX是SETifNoteXists的简写。返回整数,具体为-1,当key的值被设置-0,当key的值没被设置/redi...

Redis和MemCache静态Map做缓存区别

  本地缓存:使用自带的map或者guava实现的是本地缓存,最主要的特点是轻量以及快速,生命周期随着jvm的销毁而结束,并且在多实例的情况下,每个实例都需要各自保存一份缓存,缓存不具有一致性。  分布式缓存:使用redis或memcached之类的称为分布式缓存,在多实例的情况下,各实例共用一份缓存数据,缓存具有一致...

Redis缓存策略设计及常见问题

  缓存能够有效地加速应用的读写速度,同时也可以降低后端负载,对日常应用的开发至关重要。下面会介绍缓存使用技巧和设计方案,包含如下内容:缓存的收益和成本分析、缓存更新策略的选择和使用场景、缓存粒度控制法、穿透问题优化、无底洞问题优化、雪崩问题优化、热点key重建优化。缓存的收益和成本分析  下图左侧为客户端直接调用存储...

Mac下安装Redis及Redis Desktop Manager

  Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sortedsets)与范围查询,bitmaps,hyperloglogs和地理空间(geo...

Redis学习之Redis集群模式缺陷及其处理

  在我们已经有了Jedis客户端、集群模式支持后,Redis基本使用已经没有大的问题了。关于Jedis以及集群模式请参考博文:Redis学习之4种模式实践及机制解析(单机、主从、哨兵、集群)Redis学习之API学习及Jedis源码原理分析Redis学习之Jedis源码原理分析探究(BIO手写Jedis客户端)  但...

Redis学习之API学习及Jedis源码原理分析

  Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 我们在进行Java项目开发的时候,如果要使用Redis数据库,那么常常是通过Redis的Java客户端来简化Redis的使用,例如Redisson,Je...

Redis学习之4种模式实践及机制解析(单机、主从、哨兵、集群)

  Redis在日常部署的时候,可以有多种部署模式:单机、主从、哨兵、集群(分区分片),因此本例将对上面这四种模式进行详细的讲解,特别是集群模式将进行最细致的讲解(现行普遍使用的方式)。  单机部署很简单,直接下载Redis进行安装即可,此处不作详细讲解,具体Redis的安装请参考:Mac下安装Redis及RedisD...

Redis学习之Redis概述及原理、基本操作及持久化

  Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。  它通常被称为数据结构服务器,因为值(value)可以是字符串(String),哈希(Map),列表(list),集合(sets)和有序集合(sortedsets...

Redis学习之Jedis源码原理分析探究(BIO手写Jedis客户端)

  在Redis的使用过程中,大多数人都是使用现成的客户端,如Jedis,Redisson,Lettuce。因此本文研究用BIO的方式手写Redis客户端尝试,对遇到的问题进行探究及总结。  如何从架构角度思考架构分层?  Redis通讯协议RESP是怎么回事?  如何基于BIO实现Redis客户端?  Redis客户...

Redis学习之Redis数据结构详解(RedisObject、SDS)

  redis是一个key-value储存系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset--有序集合)和hash(哈希类型)  redis字符串:在redis-Client中执行以下命令:SETUSER_NA...

Redis二进制安全概念

  二进制安全是指,在传输数据时,保证二进制数据的信息安全,也就是不被篡改、破译等,如果被攻击,能够及时检测出来。  二进制安全包含了密码学的一些东西,比如加解密、签名等。  举个例子,你把数据11110000加密成10001000,然后传给我,就是一种二进制安全的做法。redis中的二进制安全  C字符串中的字符必须...

Redis学习之5种数据类型操作、实现原理及应用场景

  Redis可以存储可以存储键与5种不同数据结构类型之间的映射。五种数据类型为:STRING(字符串)、LIST(列表)、SET(集合)、HASH(散列)、ZSET(有序集合)。  1、类型定义  String数据结构是简单的key-value类型,使用string时,redis(大多数情况下)并不会理解或者解析其含...

redis对比其余数据库

  Redis属于常见的NoSQL数据库或者说非关系数据库:Redis不使用表,她的数据库也不会预定义或者强制去要求用户对Redis存储的不同数据进行关联。常见数据库对比:          和高性能键值缓存服务器memcached对比:  Redis和mencached都可用于存储键值映射,彼此性能也相差无几,但是①...