SSSTing_
码龄7年
求更新 关注
提问 私信
  • 博客:42,409
    42,409
    总访问量
  • 69
    原创
  • 4
    粉丝
  • 2
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
加入CSDN时间: 2018-03-05
博客简介:

sinat_41790904的博客

查看详细资料
个人成就
  • 获得14次点赞
  • 内容获得8次评论
  • 获得25次收藏
  • 代码片获得181次分享
  • 博客总排名1,875,055名
创作历程
  • 28篇
    2021年
  • 16篇
    2020年
  • 6篇
    2019年
  • 19篇
    2018年
成就勋章
TA的专栏
  • golang
    14篇
  • redis
    12篇
  • clickhouse
    2篇
  • 设计模式
    16篇
  • Java
    4篇
  • laravel笔记
    2篇
  • git笔记
    1篇
  • 基础
    7篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

创作活动更多

王者杯·14天创作挑战营·第2期

这是一个以写作博客为目的的创作活动,旨在鼓励码龄大于4年的博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。 注: 1、参赛者可以进入活动群进行交流、分享创作心得,互相鼓励与支持(开卷),答疑及活动群请见https://bbs.csdn.net/topics/619735097 2、文章质量分查询:https://www.csdn.net/qc 我们诚挚邀请你们参加为期14天的创作挑战赛!

66人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

Go 语言源码分析——map

哈希表用于存储键值对的映射关系,具有O(1)的读写性能。通过哈希函数可以将不同的键映射到不同索引上,当不同的键映射到同一个索引上时,huich
原创
发布博客 2021.06.14 ·
365 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go 语言源码分析——channel

Go 语言最常提及的设计模式就是:不要通过共享内存的方式进行通信,而是应该通过通信的方式共享内存。许多主流编程语言中,多个线程传递数据defangshi
原创
发布博客 2021.06.13 ·
295 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Redis五大数据类型底层实现总结

Redis包含字符串、列表、哈希、集合、有序集合五大数据类型,针对每一类型都给出了多种底层实现,使得Redis在执行命令时,能够针对不同的使用场景,dui
原创
发布博客 2021.05.30 ·
216 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis数据结构——压缩列表

压缩列表是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,且每个列表项要么是小整数值,要么是长度较短的字符串,Redis则使用yasuolieb
原创
发布博客 2021.05.29 ·
191 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis数据结构——整数集合

整数集合是集合键的底层实现之一。当一个集合只包含整数值元素,并且这个集合的元素不多时,Redis会用整数集合作为集合键的底层实现。
原创
发布博客 2021.05.29 ·
110 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis数据结构——跳跃表

跳跃表是一种有序数据结构,通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。tiaoyuebiaoRedis的有序集合的实现之一
原创
发布博客 2021.05.29 ·
138 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis数据结构——字典

字典适用于保存键值对的抽象数据结构,一个键可以和一个值进行关联,在字典中,键是唯一的。Redis的数据库是用字典作为底层实现的,字典还是哈希键的
原创
发布博客 2021.05.28 ·
147 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis数据结构——链表

Redis构建了自己的链表实现,其中列表键的底层实现之一就是链表,Redis的发布订阅、慢查询、监视器等功能也使用到了链表。Redis服务器还使用链表来保存多个客户端的状态信息,以及使用链表laigo...
原创
发布博客 2021.05.28 ·
203 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis数据结构——简单动态字符串

Redis没有直接使用C语言传统的字符串表示,而是构建了一种名为简单动态字符串(SDS)的抽象类型,将其作为Redis的默认字符串表示。在Redis中,C字符串只作为字符串字面量用在无需对字符串进行修改的地方,当Redis需要一个可被修改的字符串时,会使用SDS表示字符串值。1.SDS数据结构struct sdshdr { int len; // buf数组中已使用的字节长度 int free; // buf数组中未使用的字节长度 char buf[]; .
原创
发布博客 2021.05.26 ·
119 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Redis 持久化方式

Redis的数据是保持在内存中的,但当服务器宕机时,内存中的数据会丢失,因此需要将内存中的数据持久化,使得内存数据丢失时能够重新载入。Redis的持久化方式有RDB和AOF两种一、RDB持久化Redis默认采用RDB持久化,可以将Redis在内存中的数据库状态保存到磁盘内,避免数据意外丢失。1.RDB文件的创建(1)当执行save命令或bgsave命令时,会生成RDB文件。两者的区别是,save命令会阻塞Redis服务器进程,此时服务器不能处理任何命令的请求,直至RDB文件创建完成;b..
原创
发布博客 2021.05.20 ·
136 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis的过期键删除策略及内存回收机制

一、过期键删除策略1. 设定过期时间Redis有四个不同命令可用于设置键的生存时间或过期时间:expire key ttl:将key的生存时间设置为ttl秒 pexpire key ttl:将key的生存时间设置为ttl毫秒 expireat key timestamp:将key的过期时间设置为timestamp所指定的秒数时间戳 pexpireat key timestamp:将key的过期时间设置为timestamp所指定的毫秒时间戳redisDb结构中的expires字典保存了数据
原创
发布博客 2021.05.17 ·
299 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

Go 缓存系列 ——go-cache源码分析

go-cache是基于内存的k/v缓存,类似于mencached,适用于单机应用程序。go-cache是线程安全的,支持并发地存取。虽然go-cache是保存在内存,但可以通过SaveFile()方法将缓存中的数据保存到文件。一、数据结构go-cache的逻辑代码主要是在cache.go文件中,首先来看它的数据结构// 整体缓存type Cache struct { *cache}type cache struct { defaultExpiration time.Durati.
原创
发布博客 2021.05.15 ·
817 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis报错:Failed opening the RDB file dump.rdb for saving: Permission denied

执行如下语句关闭redis服务:src/redis-cli -h 127.0.0.1 -p 6379 shutdown执行失败返回以下提示:查看日志有以下提示:大概就是说在关闭服务之前需要将数据持久化,但是没有操作的权限,因此首先需要创建一个文件夹用于保存我们的数据,然后修改redis.confdbfilename是持久化数据存放的文件,这个可保持原来的值;dir是持久化数据存放的文件夹,需要修改为我们之前创建的文件夹路径,保存后修改data文件夹权限chmod 77
原创
发布博客 2021.05.09 ·
6261 阅读 ·
4 点赞 ·
3 评论 ·
7 收藏

Redis 数据类型及常用操作命令介绍

Redis不是简单的键值存储数据库,它实际上是一个支持不同类型值的数据结构服务器。Redis支持的数据类型包括:String字符串、List列表、Set集合、ZSet有序集合、Hash哈希、BitMaps位图、HyperLogLogs、Streams1. String字符串string是Redis最基本的数据类型,一个key对应一个value value可以是每种类型的字符串,其大小不能大于512MB1.1 设置和获取字符串的值其中,如果键对应的值已经设置了,再次调用set命令会将原来的.
原创
发布博客 2021.05.09 ·
152 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

CentOS7 Linux 安装Redis

1.下载源码压缩包sudo wget https://download.redis.io/releases/redis-6.2.3.tar.gz2.解压sudo tar xzf redis-6.2.3.tar.gz3.编译sudo make编译完后目录如下:4. 进入src文件夹启动Redis服务器src/redis-server服务器启动如下:5. 运行客户端src/redis-cli启动客户端后如下:然后就可以执行命令了..
原创
发布博客 2021.05.09 ·
114 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go 语言源码分析——slice 切片

Go的slice与数组类似,能够通过下标进行访问,越界访问时会报错。但slice比数组更加灵活,数组的大小是固定的,而slice可进行自动扩容。一、数据结构type slice struct { array unsafe.Pointer len int cap int}可以看到,slice底层包含了一个指向数组的指针,以及slice的长度和容量,可通过len()和cap()获取二、源码分析1. makeSlice首先看创建一个slicepackage m..
原创
发布博客 2021.04.28 ·
261 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

DBeaver 远程连接clickhouse失败问题

首次尝试远程连接clickhouse时会报下面的错误,是因为clickhouse默认情况下不允许其他设备进行http连接,需要修改clickhouse配置Unexpected driver error occurred while connecting to the database ru.yandex.clickhouse.except.ClickHouseException: ClickHouse exception, code: 210, host: 192.168.100.130, por
原创
发布博客 2021.04.18 ·
7438 阅读 ·
2 点赞 ·
1 评论 ·
4 收藏

CentOS7 Linux 安装 clickhouse

1.检查当前CPU是否支持SSE 4.2的命令$ grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"SSE 4.2 supported2.添加官方存储库sudo yum install yum-utilssudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPGsudo ..
原创
发布博客 2021.04.17 ·
435 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Go 字符串——遍历及切片

一、遍历go的遍历有以下两种方式,但是直接打印输出的为数字,与我们想要的结果不同。这是因为在Go里,字符串存储的是类型为byte的字节切片,而byte实际为uint8类型的值,即存储一个字符串时,存储的不是字符,而是字符对应的字节。那为什么两种遍历输出的数值不一样呢,接着往下看。func main() { str := "hello, 世界" fmt.Println("test 1-------") for i := 0; i < len(str); i++ { fmt.P
原创
发布博客 2021.04.17 ·
1850 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Go 防缓存击穿 —— singleflight

缓存击穿:缓存在某个时间点过期时,突然在这个时间点出现对这个key的大量并发请求,此时缓存已过期,请求会直接落在DB上,使得DB瞬间请求量增大,压力骤增。singleflight能够在同一时间有大量针对同一key的请求这种情况,只让一个请求执行去获取数据,而其他协程阻塞等待结果的返回一、数据结构type Group struct { mu sync.Mutex // 互斥锁 m map[string]*call // 对于每一个要获取的key有一个对应的call}ty..
原创
发布博客 2021.04.17 ·
266 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多