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

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

    很早就听说过redis,但是却没有好好使用过。记得读书的时候,大家用的比较多的是微软的access和sql server。等到2009年毕业的时候,linux开始流行起来,mysql使用的越来越多。后来,也就是2010以后,redis这种key-value的内存数据库也开始被大规模的使用。当然,redis的流行有很多原因,速度的优化、内存的扩大、内存条成本降低,这些都是促成redis流行的原因。

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式-老费

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值