- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 redis事务
redis事务简介redis事务的本质就是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化,在事务执行过程中,会按照顺序串行化。redis事务没有隔离级别的概念批量操作在发送exec命令前被放入队列缓存,并不会实际执行。redis不保证原子性redis中,单条命令是原子的,但是事务不是原子的(命令的语法错误可以保留原值,比如set k1 v1,set k2 v2,写成sets,这种错误可以回滚,如果lpush k2 22这种错误可能会部分执行,跳过一些错误 ),且
2021-09-22 20:51:22 92
原创 redis持久化策略
由于redis是内存数据库,所有的数据都保存在内存中,内存当中的数据极易丢失,所以redis的持久化就显得尤为重要,在redis中提供两种持久化方式,分别为RDB和AOF,且redis默认开启的数据持久化方式为RDB方式。RDB持久化方式:redis会定期保存数据快照到rdb文件中,并在启动时自动加载rdb文件,恢复之前保存的数据。可以在配置文件中配置Redis进行快照保存的时机:save [seconds] [changes]意为在seconds秒内如果发生了changes次数据修改,则进
2021-09-22 20:12:14 135
原创 leetcode第8题:
##### 实现请你来实现一个 `myAtoi(string s)` 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)int myAtoi(string s)##### 代码示例:int myAtoi(string s) { if(s.size() == 0) { return 0; } int i = 0; int res = 0; ...
2021-08-17 19:35:31 117
原创 go语言死锁问题
对于go语言的初学者,在学习chan模块的时候,可能大家都会遇到一个很简单的问题就是提示如下错误:fatal error: all goroutines are asleep - deadlock!//错误代码如下:packagemainfuncmain(){//创建一个整型通道ch:=make(chanint)//尝试将1通过通道发送ch<-1gofunc(){println("ch...
2021-05-18 17:23:59 245
原创 Go语言闭包
Go语言的闭包说到Go语言的闭包,不得不说说全局变量和局部变量全局变量的特点: 1.常驻内存 2. 污染全局 局部变量的特点: 1.不常驻内存 2.不污染全局而Go语言的闭包可以做到 1.可以让变量常驻内存 2.可以让变量不污染全局所以闭包主要是为了避免全局变量的滥用。闭包 1.闭包是指有权访问另一个函数作用域中的变量的函数 2.创建闭包的常见方式就是在一个函数内部创建另一个函数, 内函数可以访问外函数的变量...
2021-05-12 09:52:18 4555
原创 智能指针循环引用问题
class B;//前向声明class A{public: shared_ptr<B>ptrB;};class B{public: shared_ptr<A>ptrA;};int main(){ shared_ptr<A> pa (new A()); shared_ptr<B> pb (new B()); pa->ptrB = pb; pb->ptrA = pa; //...
2021-04-06 16:07:18 93
原创 Leetcode-146 LRU算法实现
O1实现LRU算法最近最少使用:头结点和尾结点作为标志位,自定义数据结构双向链表,借助哈希map实现。classNode{public:Node(intkeyp,intvalp){key=keyp;val=valp;next=NULL;pre=NULL;}public:intkey;intval;Node*next;...
2021-04-06 15:28:12 96
原创 缓存页面置换算法
这位同学讲解的特别好:包含代码实现。https://blog.csdn.net/duchenlong/article/details/111790560另外补充下LFU选择置换最近使用次数最少的页面进行置换,每个页会保留一个用于记录页被访问次数的计数器。...
2021-03-18 00:41:21 89
原创 关于IO的阻塞非阻塞,同步异步问题
知乎上有个例子很好:老张爱喝茶,废话不说,煮开水。出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。1 老张把水壶放到火上,立等水开。(同步阻塞)老张觉得自己有点傻2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)老张还是觉得自己有点傻,于是变高端了,买了把会响笛的那种水壶。水开之后,能大声发出嘀~~~~的噪音。3 老张把响水壶放到火上,立等水开。(异步阻塞)老张觉得这样傻等意义不大4 老张把响水壶放到火上,去客厅看电视,水壶响之前不再去
2021-03-17 23:25:48 181
原创 leetcode146--LRU缓存机制
class Node{public: Node(int keyp,int valp) { key = keyp; val = valp; next = NULL; pre = NULL; }public: int key; int val; Node*next; Node*pre;};class LRUCache{public: LRUCache(int capac...
2021-03-12 22:00:02 65
原创 leetcode160--相交链表
struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};//时间复杂度:O(m+n) 空间复杂度O(1)//重点:cura和curb的变化class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if(!headA |...
2021-03-12 14:23:27 53
原创 堆排序c++实现
堆排序c++实现#include<iostream>#include<vector>using namespace std;void heapify(vector<int>&vec,int n,int index){ if(index >= n) { return; } int leftIndex = 2*index + 1; int rightIndex = 2*index + 2;...
2021-03-11 15:12:03 107
原创 归并排序c++实现
归并排序算法c++实现void merge(vector<int>&vec,int left,int rightBegin,int rightbound){ int i = left; int j = rightBegin; int k = 0; vector<int>vecTmp(rightbound - left+1,0); while(i < rightBegin && j <= rightbou...
2021-03-11 14:04:52 120
转载 extern
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而...
2018-11-20 13:47:23 262
转载 static
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下://Example 1#include <ios...
2018-11-20 11:14:13 71
原创 string的length()和size()的区别?
c++标准库中查看string的length()源码如下:size_type __CLR_OR_THIS_CALL length() const { // return length of sequence return (_Mysize); } size_type __CLR_OR_THIS_CALL size(...
2018-10-22 10:43:55 7691 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人