0
点赞
收藏
分享

微信扫一扫

随想录(redis的学习和使用)

you的日常 2022-11-23 阅读 162


    很早就听说过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​​​版本,很适合拿来看一看,读一读。
 
 
 


举报

相关推荐

0 条评论