Redis
文章平均质量分 93
知春秋
不忘初心,方得始终。初心易得,始终难守。
展开
-
Redis设计与实现之String
Redis设计与实现之String文章目录Redis设计与实现之StringRedis简介SDSSDS的定义SDS的优势常数复杂度获取字符串长度杜绝缓冲区溢出减少修改字符串时的内存分配次数空间预分配惰性空间释放字符串对象编码embstr和raw的区别扩展Redis简介Redis(Remote Dictionary Server ),即远程字典服务,是一个完全开源(遵守BSD协议)免费的使用C...原创 2020-04-12 00:13:11 · 315 阅读 · 0 评论 -
Spring boot整合redis
Spring boot整合redisGithub源码:https://github.com/superRabbitMan/spring-boot-redis本文基于spring提供的spring-data-redis整合spring boot和redis引入依赖<dependencies> <dependency> <groupId...原创 2018-11-25 00:24:56 · 624 阅读 · 0 评论 -
Redis之RDB持久化
Redis之RDB持久化简介 Redis是内存数据库,它将自己的数据库信息存储到内存里面,但是如果不想办法将存储在内存中的数据保存到磁盘中,那么一旦服务器退出,服务器中的数据将会丢失。 为了解决这个问题,Redis提供了RDB持久化和AOF持久化,可以将内存中的数据库信息保存到磁盘中,避免数据意外丢失。 RDB持久化既可以手动执行,有...原创 2018-07-22 23:02:08 · 610 阅读 · 0 评论 -
Redis有序集合对象
Redis有序集合对象有序集合的底层数据结构类型答:zset的存储底层实现结构有ziplist和skiplist(跳跃表)两种类型实现。如果使用ziplist(压缩列表)作为底层实现,由于我们存储数据的时候需要输入数据的分值作为排序的依据,所有ziplist使用两个紧挨在一起的压缩列表节点来保存,第一个节点保存元素的值,第二个节点保存元素的分值。例如我们执行了zadd price 9 app...原创 2018-07-21 00:01:04 · 536 阅读 · 0 评论 -
Redis集合对象
Redis集合对象底层数据存储结构实现方式答:集合对象的编码可以是intset或者hashtable。Intset编码的集合对象使用整数集合作为底层实现,集合对象包含的所有元素都被保存在整数集合里面。Hashtable编码的集合对象使用字典作为底层实现。字典是key-value类型的结构,字典的每个键都是一个字符串对象,通过使用字典的key保存集合的值,而字典的value的值都是NULL。...原创 2018-07-20 23:31:54 · 518 阅读 · 0 评论 -
Redis之主从复制的实现原理
Redis之主从复制的实现原理必备知识:https://blog.csdn.net/sinat_32366329/article/details/81160282 如果不具备RDB持久化知识,请先看完这篇文章。旧版复制功能的实现 Redis的复制功能可以分为同步和命令传播两个操作: 同步操作用于将从服务器的数据库状态更新至主服务器当前所处的状态。...原创 2018-07-28 23:09:49 · 8408 阅读 · 0 评论 -
Redis之AOF持久化
Redis之AOF持久化前面已经介绍过Redis的RDB持久化详情请看博客地址:https://blog.csdn.net/sinat_32366329/article/details/81160282AOF持久化 Redis提供的RDB持久化是将数据以二进制存储到后缀为rdb的文件中,AOF持久化则是通过将所有的对数据库写入操作的命令存储到aof文件中实现持久化。...原创 2018-07-24 21:20:25 · 317 阅读 · 0 评论 -
Redis字符串对象
Redis字符串对象Redis自定义字符串:https://blog.csdn.net/sinat_32366329/article/details/80624529对于redis字符串没有理解过的可以去看看这个博文。编码字符串对象的编码有int、raw和embstr三种,编码决定了字符串对象的存储形式。编码其实和UTF-8、GBK这些都是一个意思。Int如果字符串对象保存的是整数值,并且这个正数...原创 2018-07-06 14:41:04 · 333 阅读 · 0 评论 -
Redis哈希对象
Redis哈希对象hash对象的存储结构类型答:hash对象的存储结构有两种类型ziplist和hashtable。ziplist作为hash的底层实现时候,如何存储数据答:由于ziplist是列表的存储结构,那么存储时候的key-value如何实现存储呢?当有新的键值对要加入到hash对象的时候,程序会先将键的压缩列表节点推入到压缩列表表尾,然后将保持了值的压缩列表节点推入到压缩列表...原创 2018-07-18 21:04:06 · 687 阅读 · 0 评论 -
基于spring-data-redis的分布式锁
最近在项目中需要编写更新接口库存的方法,由于更新库存会存在竞争关系,高并发情况下会导致出现库存负数的情况,所有需要进行加锁,但是传统的synchronized关键字无法满足多台服务器之前的锁一致问题。项目是使用了spring-data-redis做缓存,同时部署了redis集群。所有可以使用分布式锁来解决问题。通俗的来说分布式锁我的理解是:在redis中存入一个值(key-value)原创 2017-10-19 20:51:34 · 10549 阅读 · 5 评论 -
Redis配置文件解析
Redis配置文件参数说明1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 pidfile /var/run/redis.pid3. 指定Redis监听端口,默认端口为6379,作者在...原创 2018-07-11 11:17:56 · 388 阅读 · 0 评论 -
linux安装redis集群
linux安装redis集群由于这里需要使用到linux安装redis单机版的知识请看:点击打开链接准备6个节点为了保证可以进行投票,至少需要3个主节点。每个主节点都需要至少一个从节点,所以需要至少3个从节点。一共需要6台redis服务器;可以使用6个redis实例。6个redis实例的端口号:7001~7006复制实例#停止redis./redis-cli shutdown#把bin目录里面的r...原创 2018-07-11 11:12:29 · 361 阅读 · 0 评论 -
linux安装redis单机版
linux安装redis单机版安装环境:Linux:CentOS6.5Jdk:1.7以上版本环境准备redis安装在Linux上,redis是c语言开发的,需要依赖以下环境。yum -y install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make gcc-c++ libstdc++-devel tcl...原创 2018-07-11 10:49:55 · 463 阅读 · 0 评论 -
Redis列表(list)对象
Redis列表(list)对象1.Redis中list的存储底层结构有那些呢?答:list数据结构底层使用了ziplist(压缩列表)和linkedlist(队列)两种数据结构来存储数据。2.ziplist这种数据结构只有list对象使用吗?答:redis中list和hash类型的数据存储都使用到了ziplist作为底层实现之一。3.list什么情况下才会使用ziplis...原创 2018-07-10 17:01:38 · 5591 阅读 · 0 评论 -
Redis的字符串剖析
Redis的字符串剖析前言Redis是使用了C语言实现的,但是由于C语言的字符串性能问题,所有Redis并没有直接使用C语言的字符串存储数据,而是定义了自己的字符串类型(SDS)。SDS的定义SDS遵循了C字符串的以空字符表示结尾的惯例,但是空字符的一个字节不计算在SDS的len属性内部,而是由SDS分配额外的一个字节空间存储。遵循C以空字符表示结尾的好处就是,SDS可以直接重用一部分C字符串函数...原创 2018-06-08 16:10:13 · 422 阅读 · 0 评论