数据库、缓存、nosql
文章平均质量分 80
数据库、缓存、nosql
和代码去流浪
这个作者很懒,什么都没留下…
展开
-
什么是NoSQL,为什么要使用NoSQL?
详见:什么是NoSQL,为什么要使用NoSQL?_曲健磊的个人博客的博客-CSDN博客_nosqlhttps://baike.so.com/doc/5569749-5784951.html1 为什么用 NoSQL?1.1 单机 MySQL 的美好时代在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。上述架构下,我们来看看数据存储的瓶颈是什么?DAL : Data Access Layer(数据访问层..转载 2022-04-04 11:28:03 · 269 阅读 · 0 评论 -
云计算背后的秘密:NoSQL诞生的原因和优缺点
聊聊为什么NoSQL会在关系型数据库已经非常普及的情况下异军突起?诞生的原因随着互联网的不断发展,各种类型的应用层出不穷,所以导致在这个云计算的时代,对技术提出了更多的需求,主要体现在下面这四个方面:1. 低延迟的读写速度:应用快速地反应能极大地提升用户的满意度;2. 支撑海量的数据和流量:对于搜索这样大型应用而言,需要利用PB级别的数据和能应对百万级的流量;3. 大规模集群的管理:系统管理员希望分布式应用能更简单的部署和管理;4.庞大运营成本的考量:IT经理们希望在硬件成本、软件成...转载 2022-04-04 11:26:42 · 1930 阅读 · 0 评论 -
为什么要使用Nosql
工作中遇到的挑战:1,高并发读写Web2.0网站,数据库并发负载非常高,往往达到每秒上万次的读写请求2,高容量存储和高效存储Web2.0网站通常需要在后台数据库中存储海量数据,如何存储海量数据并进行高效的查询往往是一个挑战3,高扩展性和高可用性随着系统的用户量和访问量与日俱增,需要数据库能够很方便的进行扩展、维护传统关系型数据库的瓶颈:1,无法应对每秒上万次的读写请求,硬盘IO此时也将变为性能瓶颈2,表中存储记录数量有限,横向可扩展能力有限,纵向数据可承受能力也是有限原创 2022-04-04 11:25:26 · 108 阅读 · 0 评论 -
缓存篇(二)- JetCache
本文将由浅入深,从基本特性介绍,从简单demo使用,到JetCache源码分析,到Spring Aop的源码分析,到如何利用这些知识去自己尝试写一个自己的cache小demo,去做一个全面的概括。 *背景和特性 *用法demo *JetCache源码分析 *Spring Aop的支持和源码分析 *写一个简单的cache框架demo 背景和特性 对于一些cache框架或产品,我们可以发现一些明显不...转载 2022-04-03 10:41:34 · 6394 阅读 · 0 评论 -
什么场景该用 MongoDB
摘要: 前段时间,MongoDB源码团队,在云栖社区上发起了一个 MongoDB 使用场景及运维管理问题交流探讨 的技术话题,有近五千人关注了该话题讨论。很多人比较关心 MongoDB的适用场景,也有用户在话题里分享了自己的业务场景。这里就 MongoDB 的使用场景做个简单的总结,谈谈什么场景该用 MongoDB? 云数据库 MongoDB 版,查看详情客户场景1、用在应用服务器的日志记录,查找起来比文本灵活,导出也很方便。也是给应用练手,从外围系统开始使用MongoDB。2、在一...转载 2022-04-03 10:44:35 · 3802 阅读 · 1 评论 -
JetCache简介以及配置说明
简介 JetCache是一个基于java的缓存系统封装,提供统一的API和注解简化缓存的使用。JetCache提供了比SpringCache更强大的注解,可以原生的支持TTL、两级缓存、分布式自动刷新,提供了Cache接口用于手工缓存操作。当前有四个实现,RedisCache、TairCache、CaffeineCache和一个简易的LinkedHashMapCache,要添加新的实现也是非常简单。它的特性: ...转载 2022-04-03 10:43:18 · 6002 阅读 · 0 评论 -
利用Redisson实现分布式锁及其底层原理解析
Redis介绍redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更转载 2022-04-01 17:15:19 · 1227 阅读 · 0 评论 -
Spring Boot2.x 整合lettuce redis 和 redisson
前言 springboot2之前redis的连接池为jedis,2.0以后redis的连接池改为了lettuce,lettuce能够支持redis4,需要java8及以上。 lettuce是基于netty实现的与redis进行同步和异步的通信。 lettuce和jedis比较:jedis使直接连接redis server,如果在多线程环境下是非线程安全的,这个时候只有使用连接池,为每个jedis实例增加物理连接...转载 2022-04-01 17:14:16 · 3274 阅读 · 0 评论 -
redis三个连接客户端框架的选择:Jedis,Redisson,Lettuce
Jedis api 在线网址:http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jedis.htmlredisson 官网地址:https://redisson.org/redisson git项目地址:https://github.com/redisson/redissonlettuce 官网地址:https://lettuce.io/lettuce git项目地址:https://github.com/lettuce-转载 2022-04-01 17:12:42 · 1073 阅读 · 0 评论 -
Java 缓存介绍(Caffeine,EhCache)
Caffeine 一个高性能的缓存库,Caffeine 使用 Window TinyLfu 回收策略,可以提供了一个近乎最佳的命中率。 依赖 maven <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</art...转载 2022-04-01 17:10:34 · 2268 阅读 · 0 评论 -
Redisson框架官方介绍
我们现在看到的就是redission官方网站https://redisson.org首页可以看出来,redisson可以实现很多东西,在redisson的基础上,redisson做了超多的封装,我们看一下,例如说Spring Cache,TomcatSession,Spring Session,可排序的Set,还有呢Sortedsort,下面还有各种队列,包括这种双端队列,还有map,这些是数据结构,下面...转载 2022-03-31 17:53:44 · 1037 阅读 · 0 评论 -
Redis之数据存储结构
今天去中关村软件园面试,被问到:你做项目用到的Redis处理数据用的什么结构?顿时石化,”用到的结构,不就是key-value嘛,还有什么结构?“。面试官说:“平时除了工作,要加强学习,下面的面试我觉得没有了。”,之后...... 后来一想,面试官说的结构是不是指数据类型?他管数据类型叫结构,看来文字游戏害死人啊。一、Redis和Memcache区别我们先来看一下redis的一个定义,来自官方的:1 Redis is an open source, BSD licensed, adva转载 2022-03-31 17:51:37 · 1037 阅读 · 0 评论 -
搞懂这些Redis知识点,吊打面试官
“今天,我不自量力的面试了某大厂的 Java 开发岗位,迎面走来一位风尘仆仆的中年男子,手里拿着屏幕还亮着的 Mac。图片来自 Pexels他冲着我礼貌的笑了笑,然后说了句“不好意思,让你久等了”,然后示意我坐下,说:“我们开始吧,看了你的简历,觉得你对 Redis 应该掌握的不错,我们今天就来讨论下 Redis……”。我想:“来就来,兵来将挡水来土掩”。Redis 是什么面试官:你先来说下 Redis 是什么吧!我:(这不就是总结下 Redis 的定义和特点嘛)Redis 是 C转载 2022-03-31 17:50:51 · 161 阅读 · 0 评论 -
Redis简明教程
Redis是啥?用Redis官方的话来说就是:Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.Redis是一个开源的、基于内存的数据结构存储器,可以用作数据库、缓存和消息中间件。What??? 这玩意把数据放在内存,还想当数据库使?为什么是“data structure store”,而不是“data store转载 2022-03-30 18:11:15 · 134 阅读 · 0 评论 -
Redis集群下的RedLock算法(真分布式锁) 实践
在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段。 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简单的实现其实只需采用稍微增加一点复杂的设计就可以获得更好的可靠性。 这篇文章的目的就是尝试提出一种官方权威的用Redis实现分布式锁管理器的算法,我们把这个算法称为RedLock。 Redlock是redis官方提出的实现分布式锁管...转载 2022-03-30 18:10:20 · 1692 阅读 · 1 评论 -
集群环境下Redis分布式锁
一、前言 在上一篇文章中,已经介绍了基于Redis实现分布式锁的正确姿势,但是上篇文章存在一定的缺陷——它加锁只作用在一个Redis节点上,如果通过sentinel保证高可用,如果master节点由于某些原因发生了主从切换,那么就会出现锁丢失的情况:客户端1在Redis的master节点上拿到了锁 Master宕机了,存储锁的key还没有来得及同步到Slave上 master故障,发生故障转移,slave节点升级为master节点 客户端2从新的Master获取到了对应同一个资源的锁 .转载 2022-03-30 18:08:17 · 1302 阅读 · 0 评论 -
redis原理
一、问题: 数据库表数据量极大(千万条),要求让服务器更加快速地响应用户的需求。 二、解决方案: 1.通过高速服务器Cache缓存数据库数据 2.内存数据库 (这里仅从数据缓存方面考虑,当然,后期可以采用Hadoop+HBase+Hive等分布式存储分析平台) 三、主流解Cache和数据库对比: ...转载 2022-03-29 17:20:32 · 125 阅读 · 0 评论 -
Redis-基本数据类型与内部存储结构
1-概览Redis是典型的Key-Value类型数据库,Key为字符类型,Value的类型常用的为五种类型:String、Hash 、List 、 Set 、 Ordered Set2- Redis内部内存管理redisObject 核心对象Redis 内部使用一个 redisObject 对象来表示所有的 key 和 value。 type :代表一个 value 对象具体是何种数据类型。 encoding :是不同数据类型在 redis 内部的存储方式,比如:ty转载 2022-03-29 17:19:05 · 1707 阅读 · 0 评论 -
修改了Redis配置文件的端口,运行却还是6379
前段时间,本人准备在电脑部署两个redis服务,第一个默认6379,打开服务(redis-server.exe)运行,没有任何问题;第二个修改了配置文件为端口为6380,运行服务,一闪而过,马上发现,端口估计重复了,于是,关闭了第一个服务,再次运行第二个服务,成功打开,但端口居然还是6379(明明已经修改为6380了)后来经过发现,原来是第二个redis没有读取到配置文件所导致的,所以解决办法:打开控制台g:...转载 2022-03-29 17:14:44 · 2109 阅读 · 0 评论 -
Windows下使用Redis(一)安装使用
一、Redis是什么 Redis是一款依据BSD开源协议发行的高性能Key-Value存储系统(cache and store)。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) , 有序集合(sorted sets)和位图(bitmaps)等类型。官方网站是Redis Redis和其它NO SQL的比较本文不做过多阐述。我觉得Redis最好的地方就是提供数据持久化功能(定时把内存中的数据写入...转载 2022-03-26 12:26:55 · 6480 阅读 · 0 评论 -
下载Windows版本的Redis
1.打开官网Redis点击Download2.往下拉,找到Windows 由图片中的文字可以看出Redis项目不正式支持Windows。 但是,Microsoft开放技术小组开发和维护这个Windows端口针对Win64。 所以我们点击Learn more3.点击 Learn more, 或者直接打开下面的链接,会发现其实是跳转到了微软的GitHub地址Releases · microsoftarchive/redis · GitHub 然后...转载 2022-03-26 12:26:06 · 184 阅读 · 0 评论 -
spring+hibernate+shiro+Ehcache 项目分享
这篇文章,我将 把一个 spring+hibernate+shiro+Ehcache 完整的集成流程记录下来,源码亦将分享出来(项目源码地址: http://download.csdn.net/download/u011998835/10038869 点击打开链接)。但是好像csdn传资源必须要指定积分的,所以我不得已选择了2分。但这里不要在意细节了。我主要是记录,遇到问题和开发心得。 ...转载 2022-03-26 12:24:57 · 202 阅读 · 0 评论 -
Spring整合Ehcache管理缓存
前言Ehcache是一个成熟的缓存框架,你可以直接使用它来管理你的缓存。Spring提供了对缓存功能的抽象:即允许绑定不同的缓存解决方案(如Ehcache),但本身不直接提供缓存功能的实现。它支持注解方式使用缓存,非常方便。本文先通过Ehcache独立应用的范例来介绍它的基本使用方法,然后再介绍与Spring整合的方法。概述Ehcache是什么?EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点。它是Hibernate中的默认缓存框架。Ehcache已经发布了3..转载 2022-03-21 17:26:24 · 556 阅读 · 0 评论 -
Spring使用Cache
从3.1开始,Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。所以在使用Spring Cache的时候我们要保证我们缓存的方法对于相同的方法参数要有相同的返回结果。使用Spring Cache需要我们做两方面的...转载 2022-03-21 17:25:17 · 1627 阅读 · 0 评论 -
spring+ehcache实战--性能优化之道
在做系统集成平台项目的时候遇到了一个比较麻烦的问题,原因是使用考试系统的时候所依赖的是基础系统发布的webservice来获取基础数据,webservice的跨网络传输本身或多或少会对系统性能产生一定影响再加上传输的数据量比较大这样对系统性能的影响就更大了,但是导致系统性能下降的另外一个原因就是频繁的打开关闭数据库。针对这两个问题我们采取了两个解决方案以期将性能影响降至最低第一就是webservice由原先的传输序...转载 2022-03-21 17:24:11 · 292 阅读 · 0 评论 -
spring+hibernate整合ehcache
1.使用ehcache来提高系统的性能,现在用的非常多, 也支持分布式的缓存,在hibernate当中作为二级缓存的实现产品,可以提高查询性能。 2.在之前的struts2.12+Spring3.2+hibernate4.2集成系列的文章中已经集成了ehcache的jar包了, 在hibernate4.2当中可以找到ehcache-core-2.4.3.jar hibernate-ehcac...转载 2022-03-19 22:53:46 · 243 阅读 · 0 评论 -
加入ehcache后,系统出现内存泄漏,解决办法
最近在系统中,加入缓存ehcache,但发现,每隔一天,服务器就会报出内存溢出。问题严重,后来在网上查资料发现,一篇解释的网文: spring中的提供了一个名为org.springframework.web.util.IntrospectorCleanupListener的监听器。它主要负责 处理由 JavaBeans Introspector的使用而引起的缓冲泄露。spring中对它的描述如下: 它是一个在web应用关闭的时候,清除JavaBeans Introsp转载 2022-03-19 22:52:24 · 849 阅读 · 0 评论 -
设置缓存的大小
目录1 CacheManager级别2 Cache级别3 大小衡量4 配置大小示例 缓存大小的限制可以设置在CacheManager上,也可以设置在单个的Cache上。我们可以设置缓存使用内存的大小,也可以设置缓存使用磁盘的大小,但是使用堆内存的大小是必须设置的,其它可设可不设,默认不设就是无限制。在设置缓存大小的时候,我们可以设置缓存使用某一个存储器的最大字节数,也可以设置缓存在某一个存储器上最多存放元素的数量。1 C...转载 2022-03-19 22:51:16 · 1271 阅读 · 0 评论 -
ehcache memcache redis 三大缓存男高音
最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存的优缺点,仅供参考! Ehcache 在java项目广泛的使用。它是一个开源的、设计于提高在数据从RDBMS中取出来的高花费、高延迟采取的一种缓存方案。正因为Ehcache具有健壮性(基于java开发)、被认证(具有apache 2.0 license)、充满特色(稍后会详细介绍),所以被用于大型复杂分布式web...转载 2022-03-18 11:15:08 · 109 阅读 · 0 评论 -
memcached 高可用工具 memcached-ha
MemcachedHA 包装一种memcached client 使系统达到对memcached的高可用控制。日本人开发的。项目地址:http://sourceforge.jp/projects/memcached-ha/1. 数据多点备份(主从数据同步)主系统通过MemcachedHA向Memcached中存放数据时,MemcachedHA会自动同步到其他的Memcached服务器中。(该同步过程是异步完成,不会影响主系统的响应速度)2. 防穿透(提高命中率)当主系统通过Memcach转载 2022-03-18 11:13:20 · 248 阅读 · 0 评论 -
Memcached基础知识
主要内容: Memcached基本的工作原理 Memcached的两阶段哈希 Memcached的数据存储方式 Memcached新建Item分配内存过程 Memcached的数据过期方式 Memcached与Spring集成------------------------------------------------------------------------------------------Memcached基本的工作原理 Memcached是以转载 2022-03-18 11:12:42 · 217 阅读 · 0 评论 -
Memcached使用总结之:Memcache知识点梳理
Memcached概念: Memcached是一个免费开源的,高性能的,具有分布式对象的缓存系统,它可以用来保存一些经常存取的对象或数据,保存的数据像一张巨大的HASH表,该表以Key-value对的方式存在内存中。 官网下载地址: http://www.memcached.org/ 运行环境: linux,BSD,windows都可跑 协议理论:http://code.sixapart.com/sv...转载 2022-03-17 18:33:48 · 432 阅读 · 0 评论 -
Memcached 其他存储命令add命令
add命令Memcachedadd命令用于将value(数据值)存储在指定的key(键)中。如果add的key已经存在值,则不会更新数据,之前的值将仍然保持不变,并且memcached响应NOT_STORED。语法:add key flags exptime bytes [noreply]value各参数以及响应码含义与set参数相同。实例:set newOne 0 300 10thisisnewbSTOREDget newOneVALUE newOne ...转载 2022-03-17 18:32:38 · 215 阅读 · 0 评论 -
在Windows中安装Memcached
Memcached是一个高并发的内存键值对缓存系统,它的主要作用是将数据库查询结果,内容,以及其它一些耗时的计算结果缓存到系统内存中,从而加速Web应用程序的响应速度。 Memcached最开始是作为Linux应用程序被安装在Linux服务器上来使用的,不过自从开源之后,它又被重新编译以适用于Windows环境。Jellycan和Northscale两个站点都提供了Windows的二进制可执行文件下载,下面是下载的地址: http://code.jellycan.com/files/memcac转载 2022-03-17 18:31:40 · 1600 阅读 · 0 评论 -
Memcached java简单实例
最近一直在做一个项目的前期设计工作,考虑到后期系统的扩展和性能问题也找了很多解决方法,有一个就是用到了数据库的缓存工具memcached(当然该工具并不仅仅局限于数据库的缓存)。先简单的介绍下什么是memcached。 Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。Memcached由Danga Interactive开发,用于提升LiveJour...转载 2022-03-16 22:55:20 · 353 阅读 · 0 评论 -
memcached基本配置与使用
一、概念 Memcached是danga.com开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。 二、原理 Memcached有两个核心组件组成:服务端(ms)和客户端(mc)。首先mc拿到ms列表,并对key做hash转化,根据hash值确定kv对所存的ms位置。然后在一个memcached的查询中,mc先通过计算key的hash值来确定kv对所处在的ms位置。当ms确定...转载 2022-03-16 22:54:32 · 2020 阅读 · 0 评论 -
Windows 下安装 Memcached
官网上并未提供 Memcached 的 Windows 平台安装包,我们可以使用以下链接来下载,你需要根据自己的系统平台及需要的版本号点击对应的链接下载即可:32位系统 1.2.5版本:http://static.runoob.com/download/memcached-1.2.5-win32-bin.zip 32位系统 1.2.6版本:http://static.runoob.com/download/memcached-1.2.6-win32-bin.zip 32位系统 1.4.4版本:htt转载 2022-03-16 22:55:41 · 191 阅读 · 0 评论 -
windows环境下memcache配置方法 详细篇
将memcache服务器安装包解压到C:\memcached文件夹后,使用cmd命令窗口安装。1>开始>运行:CMD(确定)2>cd C:\memcached(回车)3>memcached -d install(回车 这步执行安装)4>memcached -d start(回车 这步执行启动memcache服务器,默认分配64M内存,使用11211端口)此时memcache服务器已经可以正常使用了。在服务端运行:# ./memcached -d -m 2048 -转载 2022-03-14 16:13:24 · 1466 阅读 · 0 评论 -
Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作
一、Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl、PHP为主。 仅仅memcached网站上列出的语言就有:Perl、PHP、Python、Ruby、C#、C/C++以及Lua等。 那么,我们作为.Net码农,自然是使用C#。既然Memcached客户端有.Net版,那我们就去下载一个来试试。 下载文件:http://pan.baidu.com/s/1w9Q8I memcached clien转载 2022-03-14 16:12:43 · 214 阅读 · 0 评论 -
Linux 下 Memcached 缓存服务器安装配置
【安装Memcache服务器端】我目前的平台,服务器是CentOS5.4(内核:2.6.164),客户端是Windows XP SP2,需要安装的就是服务器的Memcached的守护进程和客户端的PHP扩展php_memcache两个东西。现在我分别来讲。服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.2.0下载:http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz另外,Memcache用到了li.转载 2022-03-14 16:11:58 · 820 阅读 · 0 评论