大家好,又见面了。
本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面。如果感兴趣,欢迎关注以获取后续更新。
在本专栏前面的文章中,我们介绍了各种本地缓存框架,也知晓了本地缓存的常见特性与设计理念。在前两篇文章中,我们介绍了集中式缓存 Re
2023-01-24
一、NoSQL数据库
1、NoSQL数据库的简介
NoSQL(NoSQL=Not Only SQL),即“不仅仅是SQL”,泛指非关系型的数据库。NosQL不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。
(1)不遵循SQL标准
简介
Redis 的全称是 Remote Dictionary Server,是一个使用 C 语言编写的、开源的(BSD 许可)高性能非关系型(NoSQL)的键值对数据库。
Redis 的数据是存储在内存中的,所以读写速度非常快,被广泛应用于缓存方向,当然也有持久化数据库的用法。
优缺点
优点
读
原文地址: https://blog.fanscore.cn/a/51/
背景
最近接到一个需求,开发中使用了redis georadius命令取附近给定距离内的点。完工后对服务进行压测后发现georadius的性能比预期要差,因此我分析了georadius的源码,并对原始的实现方案进行了优化,总
本文是使用 golang 实现 redis 系列的第九篇,主要介绍如何使用 GeoHash 实现搜索附近的人。
搜索附近的POI是一个非常常见的功能,它的技术难点在于地理位置是二维的(经纬度)而我们常用的索引(无论是B树、红黑树还是跳表)都是一维的。GeoHash 算法的本质就是将二维的经纬度转换
http://www.cnblogs.com/LBSer/p/3310455.html
引子
机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西。某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐馆,并选了其中一家用餐。
饭饱之后机
MongoDB vs Elasticsearch
MongoDB
ElasticSearch
备注
定位
(文档型)数据库
(文档型)搜索引擎
一个管理数据,一个检索数据
资源占用
一般
高
mongo使用c++, es使用Java开发
写入延迟
低
高
es的写入延迟默认1s, 可配置, 但是
1.1 技术发展
redis是用来解决性能问题的数据库
技术的分类:
解决功能性问题:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN
解决扩展性问题:Struts、Spring、SpringMVC、Hibernate、Mybatis
解决性能问题:NoSQL、J
前言
redis安装在Linux服务器上,系统为centos7,安装的版本为redis6.2.10
下载与安装
下载地址:https://redis.io/download/#redis-downloads
点击上面的链接就能进入redis下载页面,最新的目前是7.0
这里使用的是6.2.10
前言
Redis中有5大数据类型,分别是字符串String、列表List、集合Set、哈希Hash、有序集合Zset,本篇介绍Redis的字符串String
Redis字符串
String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value
S
Redis事务定义
Redis 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
Redis 事务的主要作用就是串联多个命令防止别的命令插队。
Multi、Exec、discard
Redis 事务中有 Multi
缓存过期策略
定时删除 没人用
含义:在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除
优点:该策略可以立即清除过期的数据, 保证内存被尽快释放
缺点:若过期key很多,删除这些key会占用很多的CPU时间,在CPU时间紧张的情况下,C
1.问题:
最近客服有报无法上报运动记录,通过日志查看是分布式锁等待超时所致。
redis出现一个分布式锁的TTL为-1,正常情况都会设置超时时间的。
2.分析:
通过k8s发现sport服务在50几天内重启了40几次,机器上内存比较紧缺,暂时只能重启,占用内存高的问题也先不解决
前言
Redis 提供了 2 个不同形式的持久化方式:
RDB(Redis DataBase)
AOF(Append Of File)
RDB
在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是行话讲的 Snapshot 快照,它恢复时是将快照文件直接读到内存里。
备份是如何
Redis主从复制
主机数据更新后根据配置和策略, 自动同步到备机的 master/slaver 机制,Master 以写为主,Slave 以读为主,主从复制节点间数据是全量的。
作用:
读写分离,性能扩展
容灾快速恢复
上图将主服务器复制了3份从服务器,主服务器进行写操作,从服务器进行读
摘要:Bucket存储是数据共享中重要的一环,当前阶段,bucket存储可以将列存中的CU数据和DN节点解绑。
本文分享自华为云社区《存算分离之bucket表——【玩转PB级数仓GaussDB(DWS)】》,作者:yd_278301229 。
在云原生环境,用户可以自由配置cup型号、内存、磁盘、
前言说明
Linux下安装MongoDB副本集我基本上是一次搭建,几百年不再碰,也记不住具体的命令,偶尔需要搭建都是直接网上找的教程。
有些教程很精简,有些又版本不一样,所以索性我整合下别人的教程,把linux下搭建副本集的步骤记录下并分享出来,希望能够帮到你们。
参考以下文章:https:
1、三种常用的缓存模式
1.旁路缓存模式
一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求 “缓存+数据库” 必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化,串到一个内存队列里去。
采用缓存 + 数据库读写的方式,就是 Cache As
你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?
首先需要考虑到:更新数据库或者更新缓存都有可能失败,在这种前提下分析业务带来的影响。
一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不
众所周知Redis有以下几种常见的数据类型 String(字符串)、List(列表)、Set(集合)、Hash(哈希)、Sorted set(有序集合)、Stream(流)、Geo(地理空间索引)、Bitmap(位图)、HyperLogLog(基数统计)等。
我们最常用的就是String(字符串)