redis学习笔记一redis学习笔记一
Redis知识点小结一
概念:
内存数据库,用于做缓存。可做分布式锁,提供多种数据类型支持不同业务场景。支持事务、持久化、LUA脚本、LRU驱动事件。
高性能和高并发
高性能:第一次访问数据库中的数据会比较慢,因为是从磁盘上读取。将用户第一次访问的数据放入缓存,第二次或以后的多次访问...[2019/7/15]
redis学习小结一
Redis知识点小结一
概念:
内存数据库,用于做缓存。可做分布式锁,提供多种数据类型支持不同业务场景。支持事务、持久化、LUA脚本、LRU驱动事件。
高性能和高并发
高性能:第一次访问数据库中的数据会比较慢,因为是从磁盘上读取。将用户第一次访问的数据放入缓存,第...[2019/7/12]
redis 是如何做持久化的
Redis 是一个键值对数据库服务器。基于内存存储数据,它常被用做缓存数据库,用来替代 memcached。官网:https: redis.io/
什么是持久化?
持久化,指将数据存储到可永久保存的设备中。
例如,将内存中的数据存储到可永久保存的硬盘中。
为什么需要持久化?
Redis 基于内...[2019/7/10]
mac系统下Redis安装和使用步骤详解
前言
本篇文章主要讲述了Mac下Redis的安装和使用的经验,并将python如何操作Redis做了简单介绍。
1. redis 安装 和启动
1.1 用brew安装
1.查看系统是否已经安装了Redis
brew info redis
这个命令...[2019/7/9]
漫谈Redis分布式锁实现漫谈Redis分布式锁实现
在Redis上,可以通过对key值的独占来实现分布式锁,表面上看,Redis可以简单快捷通过set key这一独占的方式来实现,也有许多重复性轮子,但实际情况并非如此。总得来说,Redis实现分布式锁,如何确保锁资源的安全&及时释放,是分布式锁的最关键因素。如下逐层分析R...[2019/7/8]
项目中遇到的Redis缓存问题
1.Redis服务器 can not get resource from pool.
1000个线程并发还能跑,5000个线程的时候出现这种问题,查后台debug日志,发现redis 线程池不够。刚开始设置的是:
# redis 配置文件
#redis
redis.host=127....[2019/7/8]
redis中hash表内容删除的方法代码
hash:
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis 中每个hash可以存储 232 - 1键值对(40多亿)。
实例:
127.0.0.1:6379> HMSET runoobkey na...[2019/7/5]
Redis的主从复制
前言
关系数据库通常会使用一个主服务器向多个从服务器发送更新,并使用从服务器来处理所有的读请求,Redis采用了同样方法来实现自己的复制特性。
简单总结起来就是:在接收到主服务器发送的数据初始副本之后,客户端每次主服务器进行写命令时,从服务器都会实时地得到更新。部署好主从服务器之...[2019/7/5]
redis相关redis相关
之前学习了redis相关的一些知识,但是没有做一个总结,现在总结如下:
0.redis是什么? redis是nosql(也是个巨大的map) 单线程,但是可处理1秒10w的并发(数据都在内存中)
使用java对redis进行操作类似jdbc接口标准对mysql,有各类实现他的实现类,我们常用的...[2019/7/4]
Docker下redis的主从配置教程详解
1、拉取redis镜像
docker pull redis
2、启动3个redis容器服务,分别使用到6379、6380、6381端口
docker run --name redis-6379 -p 6379:6379 -d redis
docker run --name...[2019/7/3]
window手动操作清理redis缓存的技巧总结
redis缓存知识点:
一、缓存穿透
缓存穿透是指查询一个缓存和数据库中都没有的数据,由于大部分缓存策略是被动加载的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。用户不断发起请求,在流量大时,就可能对DB形...[2019/7/2]
redission-tomcat快速实现从单机部署到多机部署详解
前言
一些项目初期出于简单快速,都是做单机开发与部署,但是随着业务的扩展或对可用性要求的提高,单机环境已不满足需求。单机部署往多机部署切换,其中可能存在的一个重要环节就是se ion的共享(如果一开始就是基于token的认证则可忽略)。本文介绍一个基于redis的tomcat se ion管理...[2019/6/29]
Linux(Centos7)下redis5集群搭建和使用
1、简要说明
2018年十月 Redis 发布了稳定版本的 5.0 版本,推出了各种新特性,其中一点是放弃 Ruby的集群方式,改为 使用 C语言编写的 redis-cli的方式,是集群的构建方式复杂度大大降低。关于集群的更新可以在 Redis5 的版本说明中...[2019/6/27]
Redis 常用命令
1、auth pa word 验证密码
2、echo me age 打印文本
3、ping 测试连接,ping一下Redis服务器...[2019/6/26]
Redis 事务
Redis 事务可以一次执行多个命令。
常用命令:
multi 开起一个事务,标记一个事务块的开始,multi即multiple
exec 执行事务块内的命令
discard ...[2019/6/26]
Redis 发布订阅
Redis 发布订阅(pub ub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
pub即publish,推送。
sub即subscribe,订阅。
订阅者订阅某个channel(频道),发布者将消息发布...[2019/6/26]
Linux(Centos7)下redis安装、部署、开机自启
1.什么是redis
redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止redis支持的键值数据类型如下字符串、列表(lists)、集合(sets)、有序集合(sorts sets)、哈希表(hashs)
...[2019/6/25]
Redis string(字符串)相关命令
1、getset key newValue 给key设置value,并返回旧的value,如果没有旧的value,返回nil。
示例:
set age 10
getset age 20 &nb...[2019/6/25]
Redis hash(哈希)相关命令
Redis hash可储存多个键值对,适合储存对象的属性。
1、hset key fieldName fileValue hset即hash set,set这里是设置的意思。往hash中添加一个字段(键值对)
示例:
&n...[2019/6/25]
Redis list(列表)相关命令
Redis列表是简单的字符串列表,列表是有序的,列表中的元素可以重复。
可以添加一个元素到列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 232 - 1 个元素 (40多亿)。
1、lpush key value1 value2 ...[2019/6/25]
Redis set(集合)相关命令
Redis 的 Set 是 String 类型的无序集合,元素不允许重复。
Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
集合中最大的元素数为 232 - 1 (40多亿)。
1、sadd ...[2019/6/25]
Redis sorted set(有序集合)相关命令
Redis 有序集合是string类型元素的集合,元素不允许重复。
有序集合中的每个元素都会关联一个数值型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的(不可重复),但分数(score)可以重复。
1、za...[2019/6/25]
redis主从复制搭建
一.安装redis
#一主二从三台Server安装步骤相同。
wget http: download.redis.io/release redis-5.0.4.tar.gz
tar xzf redis-5.0.4.tar.gz
cd redis-5.0.4
make
二.配...[2019/6/25]
redis缓存穿透解决方法redis缓存穿透解决方法
缓存技术可以用来减轻数据库的压力,提升访问效率。目前在企业项目中对缓存也是越来越重视。但是缓存不是说随随便便加入项目就可以了。将缓存整合到项目中,这才是第一步。而缓存带来的穿透问题,进而导致的雪蹦问题都是我们迫切需要解决的问题。本篇文章将我平时项目中的解决方案分享给大家,以供参考。
一、缓存穿...[2019/6/25]
redis实现分布式的方法总结redis实现分布式的方法总结
一 为什么使用 Redis
在项目中使用 Redis,主要考虑两个角度:性能和并发。如果只是为了分布式锁这些其他功能,还有其他中间件 Zookpeer 等代替,并非一定要使用 Redis。
性能:
如下图所示,我们在碰到需要执行耗时特别久,且结果不频繁变动的 SQL,就特别适合将运行结...[2019/6/25]
Redis 简介
Redis是一个开源的使用ANSI C语言编写、基于内存亦可持久化的日志型、Key-Value数据库,并提供了对多种编程语言的支持。
Redis的外围由一个键、值映射的字典构成,Redis提供五种数据类型:string,hash,list,set及zset(...[2019/6/24]
Redis的下载安装
Redis官网只提供了Linux版,MicroSoft自己搞了个Windows版,可在GitHub下载:
https: github.com/microsoftarchive/redi releases
&nbs...[2019/6/24]
Redis 基础命令
Redis目录分析
Windows版的配置文件是redis.windows.conf,LInux版的配置文件redis.conf。
服务器端命令
安装服务: redis-server --...[2019/6/24]
Redis 配置
redis.windows.conf中的部分参数说明
redis.windows.conf配置的是Redis服务器。
bind 127.0.0.1 设置Redis服务器的ip地址
port 6379 &nb...[2019/6/24]
Redis 键相关的命令
1、set key value 设置、修改值
2、get key 如果key不存在,返回nil,表示空。
3、type key 返回key对应的value的数据类型
...[2019/6/24]
Redis 数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
1、string 字符串
示例: set name "zhangsan"
key...[2019/6/24]
redis单线程快的原因和原理
Redis之所以执行速度很快,主要依赖于以下几个原因:
(一)纯内存操作,避免大量访问数据库,减少直接读取磁盘数据,redis 将数据储存在内存里面,读写数据的时候都不会受到硬盘 I/O 速度的限制,所以速度快;
(二)单线程操作,避免了不必要的上下文切换和竞争条件,也不存在多进程或...[2019/6/24]
Redis协议具体用法详解
前言
我们用过很多redis的客户端,有没有相过自己撸一个redis客户端?其实很简单,基于socket,监听6379端口,解析数据就可以了。
redis协议
解析数据的过程主要依赖于redis的协议了。我们写个简单例子看下redis的协议:
public cla Red...[2019/6/24]
详解redis端口号
redis默认端口号是6379。
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key...[2019/6/24]
Scala 操作Redis使用连接池工具类RedisUtilScala 操作Redis使用连接池工具类RedisUtil
本文介绍了Scala 操作Redis,分享给大家,具体如下:
package com.zjw.util
import java.util
import org.apache.commons.pool2.impl.GenericObjectPoolConfig
import...[2019/6/19]
Redis 学习笔记(篇一):字符串和链表
本次学习除了基本内容之外主要思考三个问题:why(为什么)、what(原理是什么)、which(同类中还有哪些类似的东西,相比有什么区别)。
由于我对 java 比较熟悉,并且 java 中也有字符串和链表。所以本篇暂拿 redis 中的字符串和链表与 java 进行对比。
字符串
先看几个问...[2019/6/17]
Redis 5.0.5 Install manual
Redis 5.0.5 Install manual
单实例安装
1.Download, extract and compile Redis with
$ wget http: download.redis.io/release redis-5.0.5.tar.gz
$ tar xzf...[2019/6/14]
Redis实战(一)Redis简介及环境安装(Windows)
提到Redis,大家肯定都听过,并且应该都在项目中或多或少的使用过,也许你觉得Redis用起来挺简单的呀,但如果有人问你下面的几个问题(比如同事或者面试官),你能回答的上来吗?
什么是Redis?
Redis能存储哪几种数据结构?
Redis有几种持久化机制?它们的优缺点分别是什么?
哪些场景需...[2019/6/10]
Redis的LRU算法
Redis的LRU算法
LRU算法背后的的思想在计算机科学中无处不在,它与程序的"局部性原理"很相似。在生产环境中,虽然有Redis内存使用告警,但是了解一下Redis的缓存使用策略还是很有好处的。下面是生产环境下Redis使用策略:最大可用内存限制为4GB,采用 allkey...[2019/6/10]
redis 延迟消息
1、查询下redis 是否打开了键空间通知功能
发现打开了,如果没有打开可以在执行下
我们可以看到参数设置
2、订阅下键空间或者事件通知
一,安装:
1.1.将redis压缩包放到 /opt 下。
2.解压
3.进入目录执行 make
4.执行 make install
5.在 / 下创建redis文件夹mkdir redis
6. cd /usr/l...[2019/6/5]
redis简介及常见问题
目录
简介
特点
优点
高性能
高并发
为什么要用 redis 而不用 map/guava 做缓存?
redis 和 memcac...[2019/6/4]
Redis 底层数据结构介绍
Redis 底层数据结构
版本:2.9
支持的数据类型:
字符串
散列
列表
集合
有序集合
字符串
Redis 利用原生的 c 字符串进行了一次封装。封装的字符串叫做简单动态字符串:SDS(simple dynamic string)
Redis 使用的简单动态字符串比 c 语言原生...[2019/6/4]
Redis中的Scan命令的使用
Redis中有一个经典的问题,在巨大的数据量的情况下,做类似于查找符合某种规则的Key的信息,这里就有两种方式,一是keys命令,简单粗暴,由于Redis单线程这一特性,keys命令是以阻塞的方式执行的,keys是以遍历的方式实现的复杂度是 O(n),Redis库中的key越...[2019/6/3]
Redis提供的持久化机制
Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能、持久存储、适应高并发应用场景等优势。它虽然起步较晚,但发展却十分迅速。 近日,Redis的作者在博客中写到,他看到的所有针对Redis的讨论中,对Redis持久化的误解是最...[2019/6/3]
Redis 的常用命令
Redis 的数据类型
一些命令需要结合 redis 的数据类型来说。
Redis 4.0 之前有5种数据类型,分别是:字符串(string)、散列(hash)、列表(list)、集合(set)、有序集合(zset)。
在 4.0 版本,Redis 新加了一种 stream 的类型。暂且先不说...[2019/6/3]
Redis中Scan命令的基本使用教程
前言
Redis中有一个经典的问题,在巨大的数据量的情况下,做类似于查找符合某种规则的Key的信息,这里就有两种方式,
一是keys命令,简单粗暴,由于Redis单线程这一特性,keys命令是以阻塞的方式执行的,keys是以遍历的方式实现的复杂度是 O(n),Redis库中的key越多,查找...[2019/6/3]
Redis中LRU淘汰策略的深入分析
前言
Redis作为缓存使用时,一些场景下要考虑内存的空间消耗问题。Redis会删除过期键以释放空间,过期键的删除策略有两种:
惰性删除:每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键。
定期删除:每隔一段时间,程序就对数据库...[2019/6/3]
Redis中LFU算法的深入分析
前言
在Redis中的LRU算法文中说到,LRU有一个缺陷,在如下情况下:
~~~~~A~~~~~A~~~~~A~~~~A~~~~~A~~~~~A~~|
~~B~~B~~B~~B~~B~~B~~B~~B~~B~~B~~B~~B~|
~~~~~~~~~~C~~~~~~~~~C~~~~...[2019/6/3]