精华内容
下载资源
问答
  • using (RedisHashService service = new RedisHashService()) { service.SetEntryInHash("student", "id", "001")
  • using (RedisSetService service = new RedisSetService()) { service.FlushAll();//清理全部数据 service.Add("advan
  • using (RedisStringService service = new RedisStringService()) { service.Set<string>("student1",
  • using (RedisZSetService service = new RedisZSetService()) { service.FlushAll();//清理全部数据 service.Add(
  • using (RedisListService service = new RedisListService()) { service.FlushAll(); service.Add("article
  • redis 分布式缓存

    2018-05-18 09:56:30
    redis 分布式缓存 安装包 目前最稳定的版本 windows环境下运行
  • Redis分布式缓存

    2019-09-23 07:41:52
    Redis分布式缓存 转载于:https://www.cnblogs.com/weixing/p/5710692.html

    Redis分布式缓存

    转载于:https://www.cnblogs.com/weixing/p/5710692.html

    展开全文
  • redis分布式缓存例子

    2018-06-22 10:47:56
    redis分布式缓存+spring整合及 集群、分片等配置使用例子
  • 主要介绍了SpringBoot redis分布式缓存实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • spring redis 分布式缓存整合详细的注释说明,各个工具类的的整合。非常简单
  • Redis分布式缓存 Springboot/Mybatis/高可用/高并发/互联网架构
  • 愿意了解框架技术或者源码的朋友直接求求交流分享技术:2042849237 用redis分布式缓存实现 Redis, Redis分布式, Redis分布式缓存, Redis存储系统, SpringMVC+Mybatis

    摘要: Redis简介 1. 支持5种数据结构 支持strings, hashes, lists, sets, sorted sets  string是很好的存储方式,用来做计数存储。sets用于建立索引库非常棒;

    第一:Redis 是什么?

    Redis是基于内存、可持久化的日志型、Key-Value数据库 高性能存储系统,并提供多种语言的API.

    第二:出现背景

    • 数据结构(Data Structure)需求越来越多, 但memcache中没有, 影响开发效率
    • 性能需求, 随着读操作的量的上升需要解决,经历的过程有: 
      数据库读写分离(M/S)–>数据库使用多个Slave–>增加Cache (memcache)–>转到Redis
    • 解决写的问题: 
      水平拆分,对表的拆分,将有的用户放在这个表,有的用户放在另外一个表;
    • 可靠性需求 
      Cache的"雪崩"问题让人纠结 
      Cache面临着快速恢复的挑战

    • 开发成本需求 
      Cache和DB的一致性维护成本越来越高(先清理DB, 再清理缓存, 不行啊, 太慢了!) 
      开发需要跟上不断涌入的产品需求 
      硬件成本最贵的就是数据库层面的机器,基本上比前端的机器要贵几倍,主要是IO密集型,很耗硬件;

    • 维护性复杂 
      一致性维护成本越来越高; 
      BerkeleyDB使用B树,会一直写新的,内部不会有文件重新组织;这样会导致文件越来越大;大的时候需要进行文件归档,归档的操作要定期做; 
      这样,就需要有一定的down time;

    基于以上考虑, 选择了Redis

    第三:Redis 在新浪微博中的应用

    Redis简介

    1. 支持5种数据结构

    支持strings, hashes, lists, sets, sorted sets 
    string是很好的存储方式,用来做计数存储。sets用于建立索引库非常棒;

     

    2. K-V 存储 vs K-V 缓存

    新浪微博目前使用的98%都是持久化的应用,2%的是缓存,用到了600+服务器 
    Redis中持久化的应用和非持久化的方式不会差别很大: 
    非持久化的为8-9万tps,那么持久化在7-8万tps左右; 
    当使用持久化时,需要考虑到持久化和写性能的配比,也就是要考虑redis使用的内存大小和硬盘写的速率的比例计算;

     

    3. 社区活跃

    Redis目前有3万多行代码, 代码写的精简,有很多巧妙的实现,作者有技术洁癖 
    Redis的社区活跃度很高,这是衡量开源软件质量的重要指标,开源软件的初期一般都没有商业技术服务支持,如果没有活跃社区做支撑,一旦发生问题都无处求救;

    Redis基本原理

    redis持久化(aof) append online file: 
    写log(aof), 到一定程度再和内存合并. 追加再追加, 顺序写磁盘, 对性能影响非常小

     

    1. 单实例单进程

    Redis使用的是单进程,所以在配置时,一个实例只会用到一个CPU; 
    在配置时,如果需要让CPU使用率最大化,可以配置Redis实例数对应CPU数, Redis实例数对应端口数(8核Cpu, 8个实例, 8个端口), 以提高并发: 
    单机测试时, 单条数据在200字节, 测试的结果为8~9万tps;

    2. Replication

    过程: 数据写到master–>master存储到slave的rdb中–>slave加载rdb到内存。 
    存储点(save point): 当网络中断了, 连上之后, 继续传. 
    Master-slave下第一次同步是全传,后面是增量同步;、

     

    3. 数据一致性

    长期运行后多个结点之间存在不一致的可能性; 
    开发两个工具程序: 
    1.对于数据量大的数据,会周期性的全量检查; 
    2.实时的检查增量数据,是否具有一致性;

    对于主库未及时同步从库导致的不一致,称之为延时问题; 
    对于一致性要求不是那么严格的场景,我们只需要要保证最终一致性即可; 
    对于延时问题,需要根据业务场景特点分析,从应用层面增加策略来解决这个问题; 
    例如: 
    1.新注册的用户,必须先查询主库; 
    2.注册成功之后,需要等待3s之后跳转,后台此时就是在做数据同步。

     

    第四:分布式缓存的架构设计

    1.架构设计

    由于redis是单点,项目中需要使用,必须自己实现分布式。基本架构图如下所示:

     

     

    2.分布式实现

    通过key做一致性哈希,实现key对应redis结点的分布。

    一致性哈希的实现:

    l        hash值计算:通过支持MD5与MurmurHash两种计算方式,默认是采用MurmurHash,高效的hash计算。

    l        一致性的实现:通过java的TreeMap来模拟环状结构,实现均匀分布

     

    3.client的选择

    对于jedis修改的主要是分区模块的修改,使其支持了跟据BufferKey进行分区,跟据不同的redis结点信息,可以初始化不同的 ShardInfo,同时也修改了JedisPool的底层实现,使其连接pool池支持跟据key,value的构造方法,跟据不同 ShardInfos,创建不同的jedis连接客户端,达到分区的效果,供应用层调用

     

    4.模块的说明

    l        脏数据处理模块,处理失败执行的缓存操作。

    l        屏蔽监控模块,对于jedis操作的异常监控,当某结点出现异常可控制redis结点的切除等操作。

    整个分布式模块通过hornetq,来切除异常redis结点。对于新结点的增加,也可以通过reload方法实现增加。(此模块对于新增结点也可以很方便实现)

    对于以上分布式架构的实现满足了项目的需求。另外使用中对于一些比较重要用途的缓存数据可以单独设置一些redis结点,设定特定的优先级。另外对 于缓存接口的设计,也可以跟据需求,实现基本接口与一些特殊逻辑接口。对于cas相关操作,以及一些事物操作可以通过其watch机制来实现。

    声明:所有博客服务于分布式框架,作为框架的技术支持及说明,框架面向企业,是大型互联网分布式企业架构,后期会介绍linux上部署高可用集群项目。

    欢迎大家一起学习研究相关技术

    愿意了解框架技术或者源码的朋友直接求求交流分享技术:2042849237

    展开全文
  • JEESZ-Redis分布式缓存安装和使用 架构设计×Redis分布式,Redis基本原理×Redis× Redis缓存 Redis,Redis分布式,Redis分布式缓存,Redis存储系统 愿意了解框架技术或者源码的朋友直接求求交流分享技术:2042849237 ...

    独立缓存服务器: LinuxCentOS

    Redis版本: 3.0

    下面我们针对于Redis安装做下详细的记录:

    编译和安装所需的包:

    #yum install gcc tcl创建安装目录:

    #mkdir /usr/local/redis

    解压:

    #tar -zxvf 3.xx.tar.gz

    #mv redis-3.xx redis3.0

    #cd redis3.0安装(使用PREFIX指定安装目录):

    #make PREFIX=/usr/local/redis install

    安装完成后,可以看到/usr/local/redis目录下有一个bin目录,bin目录里就是redis的命令脚本:

    redis-benchmark redis-check-aof redis-check-dumpredis-cli redis-server

    将Redis配置成服务:

    按上面的操作步骤,Redis的启动脚本为:/usr/local/src/redis3.0/utils/redis_init_script

    将启动脚本复制到/etc/rc.d/init.d/目录下,并命名为redis

    #cp /usr/local/src/redis3.0/utils/redis_init_script/etc/rc.d/init.d/redis编辑/etc/rc.d/init.d/redis,修改相应配置,使之能注册成为服务:

    #vi/etc/rc.d/init.d/redis

    #!/bin/sh

    #

    # Simple Redis init.d script conceived to work on Linux systems

    # as it does use of the /proc filesystem.

    REDISPORT=6379

    EXEC=/usr/local/bin/redis-server

    CLIEXEC=/usr/local/bin/redis-cli

    PIDFILE=/var/run/redis_${REDISPORT}.pid

    CONF="/etc/redis/${REDISPORT}.conf"

    case "$1" in

    start)

    if [ -f $PIDFILE ]

    then

    echo "$PIDFILE exists, process is already running or crashed"

    else

    echo "Starting Redis server..."

    $EXEC $CONF

    fi

    ;;

    stop)

    if [ ! -f $PIDFILE ]

    then

    echo "$PIDFILE does not exist, process is not running"

    else

    PID=$(cat $PIDFILE)

    echo "Stopping ..."

    $CLIEXEC -p $REDISPORT shutdown

    while [ -x /proc/${PID} ]

    do

    echo "Waiting for Redis to shutdown ..."

    sleep 1

    done

    echo "Redis stopped"

    fi

    ;;

    *)

    echo "Please use start or stop as first argument"

    ;;

    esac

    查看以上redis服务脚本,关注标为橙色的几个属性,做如下几个修改的准备:

    (1)在脚本的第一行后面添加一行内容如下:

    #chkconfig: 2345 80 90

    提醒:如果不添加上面的内容,在注册服务时会提示:service redis does not support chkconfig

    (2)REDISPORT端口保持6379不变;(特别注意:端口名将与下面的配置文件名有关)

    (3)EXEC=/usr/local/bin/redis-server改为EXEC=/usr/local/redis/bin/redis-server

    (4)CLIEXEC=/usr/local/bin/redis-cli改为CLIEXEC=/usr/local/redis/bin/redis-cli

    (5)配置文件设置:

    创建redis配置文件目录

    #mkdir /usr/local/redis/conf

    复制redis配置文件/usr/local/src/redis3.0/redis.conf到/usr/local/redis/conf目录并按端口号重命名为6379.conf

    #cp /usr/local/src/redis3.0/redis.conf/usr/local/redis/conf/6379.conf

    做了以上准备后,再对CONF属性作如下调整:

    CONF="/etc/redis/${REDISPORT}.conf"改为CONF="/usr/local/redis/conf/${REDISPORT}.conf"

    (6)更改redis开启的命令,以后台运行的方式执行:

    $EXEC $CONF&#“&”作用是将服务转到后面运行

    修改后的/etc/rc.d/init.d/redis服务脚本内容为:

    #!/bin/sh

    #chkconfig: 2345 80 90

    #

    # Simple Redis init.d script conceived to work on Linux systems

    # as it does use of the /proc filesystem.

    REDISPORT=6379

    EXEC=/usr/local/redis/bin/redis-server

    CLIEXEC=/usr/local/redis/bin/redis-cli

    PIDFILE=/var/run/redis_${REDISPORT}.pid

    CONF="/usr/local/redis/conf/${REDISPORT}.conf"

    case "$1" in

    start)

    if [ -f $PIDFILE ]

    then

    echo "$PIDFILE exists, process is already running or crashed"

    else

    echo "Starting Redis server..."

    $EXEC $CONF&

    fi

    ;;

    stop)

    if [ ! -f $PIDFILE ]

    then

    echo "$PIDFILE does not exist, process is not running"

    else

    PID=$(cat $PIDFILE)

    echo "Stopping ..."

    $CLIEXEC -p $REDISPORT shutdown

    while [ -x /proc/${PID} ]

    do

    echo "Waiting for Redis to shutdown ..."

    sleep 1

    done

    echo "Redis stopped"

    fi

    ;;

    *)

    echo "Please use start or stop as first argument"

    ;;

    esac

    以上配置操作完成后,便可将Redis注册成为服务:

    #chkconfig --add redis

    防火墙中打开对应的端口

    #vi /etc/sysconfig/iptables

    添加:

    -A INPUT -m state --state NEW -m tcp -p tcp --dport6379 -j ACCEPT

    重启防火墙:

    #service iptables restart

    修改redis配置文件设置:

    #vi /usr/local/redis/conf/6379.conf

    修改如下配置

    daemonizeno改为daemonizeyes

    备注:如果不改为yes,pid文件是不会生成,start、stop命令是不会生效的(依赖pid文件)

    pidfile /var/run/redis.pid改为pidfile /var/run/redis_6379.pid

    启动Redis服务

    #service redis start

    将Redis添加到环境变量中:

    #vi /etc/profile

    在最后添加以下内容:

    ## Redis env

    export PATH=$PATH:/usr/local/redis/bin

    使配置生效:

    #source /etc/profile

    当前可以直接使用redis-cli等redis命令了:

    #redis-cli



    关闭Redis服务

    #service redis stop提醒:默认情况下,Redis开启安全认证,可以通过/usr/local/redis/conf/6379.conf的requirepass指定一个验证密码

    在jeesz中主要使用redis做分布式缓存,存储登录用户信息,做session共享管理



    源码来源:minglisoft.cn/technology

    欢迎大家一起学习研究相关技术,源码获取请加求求(企鹅): 2042849237

    展开全文
  • Guava Cache本地缓存 Redis分布式缓存

    Guava Cache本地缓存

     

    Redis分布式缓存

    展开全文
  • 1. Mybatis的缓存机制,一级缓存级别是同一个SqlSession对象、二级缓存是存在SqlSessionFactory工厂对象中...2. 通过实现Cache接口【Mybatis中的】,再利用Mybatis的二级缓存机制,实现在数据操作层的Redis分布式缓存
  • 但是我们的数据库性能十分孱弱,Feign调用第三方接口响应时长慢,我们需要一种在百万级QPS,数据库或者Feign调用慢的环境下,依旧能给前端100毫秒的响应时间,经过探索,我们采用了Redis分布式缓存,使用Redission...
  • redis分布式缓存实现

    千次阅读 2017-02-06 17:10:00
    基于redis分布式缓存实现 第一:Redis 是什么? Redis是基于内存、可持久化的日志型、Key-Value数据库 高性能存储系统,并提供多种语言的API. 第二:出现背景 数据结构(Data Structure)需求越来越...
  • redis 事务单独的隔离操作:事务中的所有命令都会序列化、按顺序执行。事务在执行过程中,不会被其他客户端发送过来的命令请求所打断。
  • 下面分别介绍一下fourinone分布式缓存和Redis分布式缓存,然后对二者进行对比,以供大家参考。 1 fourinone分布式缓存特性  1.1 没有持久化,依靠主从备份来容灾;  1.2 依赖JVM,存储能力受JVM配置内存限制,插满...
  • Redis分布式缓存实现可以有两种方式 手动方式 自动方式 手动方式在前边已经详细介绍过了,本文主要介绍自动方式的搭建 Redis 3.0 版本之后官方发布了一个集群管理工具 redis-trib.rb,集成在 Redis 源码包的src...
  • 本期分享主题:Java Spring Boot 2.0实战Redis分布式缓存与底层API架构(面试题) 内容概要:Redis分布式高并发缓存,高并发架构的必备技术!BAT等一线互联网名企面试必备, 本课程讲解如何使...
  • Redis分布式缓存

    2018-08-14 02:29:51
    1.Redis分布式锁 用的Redis来实现分布式锁最简单的方式是在实例里创建一个键值,创建出来的键值有一个超时时间,所以每个锁最终会被释放,当一个客户端想要释放锁时候,客户端只要删除这个键值就可以。 利用redis...
  • memberCache在前几年是比较流行的,现在一般公司都会用Redis分布式缓存。主要是基于Redis能支持更多的数据结构,另外呢就是Redis的高性能和抗高并发的使用。因为Redis是单线程的,那么问题来了:单线程的Redis为什么...
  • 独立缓存服务器: LinuxCentOS Redis版本: 3.0 下面我们针对于Redis安装做下详细的记录: 编译和安装所需的包: #yum install gcc tcl创建安装目录: #mkdir /usr/local/redis
  • 本期分享主题:Java Spring Boot 2.0实战Redis分布式缓存与底层API架构(面试题) 内容概要:Redis分布式高并发缓存,高并发架构的必备技术!BAT等一线互联网名企面试必备, 本课程讲解如何使...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 121,011
精华内容 48,404
关键字:

redis分布式缓存

redis 订阅