随想录(redis的学习和使用)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
很早就听说过redis,但是却没有好好使用过。记得读书的时候,大家用的比较多的是微软的access和sql server。等到2009年毕业的时候,linux开始流行起来,mysql使用的越来越多。后来,也就是2010以后,redis这种key-value的内存数据库也开始被大规模的使用。当然,redis的流行有很多原因,速度的优化、内存的扩大、内存条成本降低,这些都是促成redis流行的原因。
文章目录
- 1、下载redis
- 2、代码编译
- 3、最主要的工具
- 4、判断数据库有没有连上
- 5、设置数据
- 6、订阅机制
- 7、保存和加载
- 8、过期时间
- 9、选中数据库和清空数据库
- 10、平台支持
- 11、redis和mysql配合
- 12、参考资料
- 13、代码阅读的价值
1、下载redis
wget http://download.redis.io/releases/redis-6.0.8.tar.gz
2、代码编译
tar xzvf redis-6.0.8.tar.gz
cd src
make
如果遇到编译错误,安装pkgconf即可,
sudo apt-get install pkgconf
3、最主要的工具
./redis-cli
./redis-server
4、判断数据库有没有连上
ping
5、设置数据
set
get
6、订阅机制
publish
subscribe
7、保存和加载
save
bgsave
8、过期时间
expire
9、选中数据库和清空数据库
select
flushdb
10、平台支持
同时支持linux和win32平台
11、redis和mysql配合
熟悉redis的朋友都知道,redis要比mysql快很多,这主要是因为redis的数据都是保存在内存里面,没有外设io操作。因此可以把redis看成是mysql的一层缓存。
mysql转换成redis数据,最简单的方法就是用table+id作为key,value1+value2+…value n作为一个完整的value即可。
以读为例,需要读数据的时候,首先检查redis有没有对应的数据,如果有,读redis;如果没有,需要读mysql的同时,加载到redis数据库。这非常重要。
以写为例,需要写数据的时候,分别写入redis和mysql即可。如果redis有数据,直接写入redis,同时写到一个mysql的独立操作线程里面即可,不需要等操作完成再返回。如果没有,那么等独立操作线程所有操作结束后,从mysql读数据,写入redis,更改redis,再继续向独立操作线程发送操作指令,显得稍微复杂点。上面等待独立线程操作结束的动作,主要是为了防止操作队列有数据删除动作,或者key过期时间很短,造成操作队列还没有执行完,这样对会对后面的mysql写入造成影响。
因为我们时刻要牢记,redis数据有可能被多个客户端程序访问,也就是读写可能同时发生,所以一定要考虑redis和mysql的一致性问题。这种情况,或许变成串行化访问,也就是有一个总的数据处理thread,统一负责redis和mysql的同步工作比较好,使用rpc协议就能完成。
另外一点就是,在发生程序异常的时候,一定要确保独立写进程都操作完毕。当然,有的时候为了验证的需要,需要save一下redis数据。
12、参考资料
可以参考这个redis教程,使用还是很方便的。
13、代码阅读的价值
本身redis作为cache使用的,就像cpu里面的icache、dcache一样。另外一方面,redis的代码比较简练,非常适合拿来进行学习,特别是早期的版本,比如2.2版本,很适合拿来看一看,读一读。
随想录(redis的学习和使用)相关推荐
- Redis 系统学习目录
Redis 系统学习目录 1.redis是什么 2.redis的作者何许人也 3.谁在使用redis 4.学会安装redis 5.学会启动redis 6.使用redis客户端 7.redis数据结构 ...
- Redis的学习记录
Redis的学习记录 1.先导了解 1.1 NOSQL概述 1.1.1 为什么要用NoSql? 1.1.2 NoSql了解 1.1.3 NoSql特点 1.1.4 NoSQL的四大分类 2. Redi ...
- memcache/redis 缓存学习笔记
0.redis和memcache的区别 a.redis可以存储除了string之外的对象,如list,hash等 b.服务器宕机以后,redis会把内存的数据持久化到磁盘上,而memcache则不会 ...
- 笔记-redis深入学习-1
笔记-redis深入学习-1 redis的基本使用已经会了,但存储和读取只是数据库系统最基础的功能: 数据库系统还得为可靠实现这两者提供一系列保证: 数据.操作备份和恢复,主要是持久化: 高可用:主要 ...
- Redis 进阶学习笔记
Redis进阶学习笔记 阅读Redis.conf配置文件 # 61, 绑定的 IP , 一般注释掉该命令,这个吗,命令表示仅接受本机的(IP为本机)客户端连接, bind 127.0.0.1 # 80 ...
- Redis进阶学习08--多级缓存
Redis进阶学习08--多级缓存 什么是多级缓存 JVM进程缓存 环境准备 docker安装mysql docker安装nginx 反向代理 初识Caffeine 实现JVM进程缓存 需求 实现 L ...
- redis安全学习笔记
redis安全学习笔记 [toc] 文章部分内容首发于xray社区公众号 基础 https://www.runoob.com/redis/redis-tutorial.html 环境 : ubuntu ...
- 尚硅谷Redis 7学习笔记
尚硅谷Redis 7学习笔记 视频链接 新手入门篇 1.安装及数据类型 2.持久化 3.Redis 7 事务.管道.发布订阅.主从.哨兵.集群 4.springboot整合redis 高级篇(更新中- ...
- c语言中%3ccr%3e有啥作用,Redis安全学习
Redis安全学习 一直在听SSRF打Redis,那Redis到底是啥,正式的认真学习一下. 1.Redis是什么 REmote DIctionary Server(Redis) 是一个由Salvat ...
最新文章
- 简单介绍oracle重置序列的方法
- 年度书单盘点 | 史上最卷考研潮过后,这十本书让你不再迷茫
- MySQL 字符串删除表情符_PHP处理字符中的emoji表情(判断/移除/存储)
- iOS macOS的后渗透利用工具:EggShell
- mysql中去重的用法_mysql中去重 distinct 用法
- python图例位置_Python | 图例位置
- ios 数字键盘左下角添加按钮_IOS数字键盘左下角添加完成按钮的实现方法
- Halcon 基本算子释义
- nacl溶解度_运用溶解度曲线判断混合物分离、提纯的方法
- 在苹果Mac中的“照片”应用中创建幻灯片放映?
- Java中的“无限循环”结构
- 读《把时间当作朋友:运用心智获得解放》
- 关于Autosar中的NM模块的理解
- 什么是Cookie?怎样设置和读取Cookie?
- 哈尔滨海鹰机器人_哈尔滨机器人产业园:机器人让“未来”照进现实
- 空中网4k/5k月薪挑选大四实习生的线程题
- SQL Server DeadLock 分析
- 你应当了解的Docker底层技术
- unity 照片墙 流动 排斥 引力
- AI测温人脸门禁防疫布控解决方案:为构建城市防疫战线提供有力支持 | 百万人学AI评选