【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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的学习和使用)相关推荐

  1. Redis 系统学习目录

    Redis 系统学习目录 1.redis是什么 2.redis的作者何许人也 3.谁在使用redis 4.学会安装redis 5.学会启动redis 6.使用redis客户端 7.redis数据结构 ...

  2. Redis的学习记录

    Redis的学习记录 1.先导了解 1.1 NOSQL概述 1.1.1 为什么要用NoSql? 1.1.2 NoSql了解 1.1.3 NoSql特点 1.1.4 NoSQL的四大分类 2. Redi ...

  3. memcache/redis 缓存学习笔记

    0.redis和memcache的区别 a.redis可以存储除了string之外的对象,如list,hash等 b.服务器宕机以后,redis会把内存的数据持久化到磁盘上,而memcache则不会 ...

  4. 笔记-redis深入学习-1

    笔记-redis深入学习-1 redis的基本使用已经会了,但存储和读取只是数据库系统最基础的功能: 数据库系统还得为可靠实现这两者提供一系列保证: 数据.操作备份和恢复,主要是持久化: 高可用:主要 ...

  5. Redis 进阶学习笔记

    Redis进阶学习笔记 阅读Redis.conf配置文件 # 61, 绑定的 IP , 一般注释掉该命令,这个吗,命令表示仅接受本机的(IP为本机)客户端连接, bind 127.0.0.1 # 80 ...

  6. Redis进阶学习08--多级缓存

    Redis进阶学习08--多级缓存 什么是多级缓存 JVM进程缓存 环境准备 docker安装mysql docker安装nginx 反向代理 初识Caffeine 实现JVM进程缓存 需求 实现 L ...

  7. redis安全学习笔记

    redis安全学习笔记 [toc] 文章部分内容首发于xray社区公众号 基础 https://www.runoob.com/redis/redis-tutorial.html 环境 : ubuntu ...

  8. 尚硅谷Redis 7学习笔记

    尚硅谷Redis 7学习笔记 视频链接 新手入门篇 1.安装及数据类型 2.持久化 3.Redis 7 事务.管道.发布订阅.主从.哨兵.集群 4.springboot整合redis 高级篇(更新中- ...

  9. c语言中%3ccr%3e有啥作用,Redis安全学习

    Redis安全学习 一直在听SSRF打Redis,那Redis到底是啥,正式的认真学习一下. 1.Redis是什么 REmote DIctionary Server(Redis) 是一个由Salvat ...

最新文章

  1. 简单介绍oracle重置序列的方法
  2. 年度书单盘点 | 史上最卷考研潮过后,这十本书让你不再迷茫
  3. MySQL 字符串删除表情符_PHP处理字符中的emoji表情(判断/移除/存储)
  4. iOS macOS的后渗透利用工具:EggShell
  5. mysql中去重的用法_mysql中去重 distinct 用法
  6. python图例位置_Python | 图例位置
  7. ios 数字键盘左下角添加按钮_IOS数字键盘左下角添加完成按钮的实现方法
  8. Halcon 基本算子释义
  9. nacl溶解度_运用溶解度曲线判断混合物分离、提纯的方法
  10. 在苹果Mac中的“照片”应用中创建幻灯片放映?
  11. Java中的“无限循环”结构
  12. 读《把时间当作朋友:运用心智获得解放》
  13. 关于Autosar中的NM模块的理解
  14. 什么是Cookie?怎样设置和读取Cookie?
  15. 哈尔滨海鹰机器人_哈尔滨机器人产业园:机器人让“未来”照进现实
  16. 空中网4k/5k月薪挑选大四实习生的线程题
  17. SQL Server DeadLock 分析
  18. 你应当了解的Docker底层技术
  19. unity 照片墙 流动 排斥 引力
  20. AI测温人脸门禁防疫布控解决方案:为构建城市防疫战线提供有力支持 | 百万人学AI评选

热门文章

  1. Ideal 使用帮助手册
  2. 谷歌黑科技:gVisor轻量级容器运行时沙箱
  3. Linux 搭建SVN服务器
  4. Form Builder的三种查询方法构建
  5. 如何测试WEB应用程序防止SQL注入***
  6. JavaScript多继承(转载)
  7. 返回一个整数数组中最大子数组的和---环形数组
  8. Composer的Autoload源码实现2——注册与运行
  9. 72. Edit Distance
  10. 转载---KMP算法(Matrix67原创)