redis总结

redis和memcached的区别。

https://blog.csdn.net/sinat_30474567/article/details/72918141

--------------------------------------------------------------------------------------------------------------------------------------------------------

redis支持哪些数据结构。

五种,String  list(列表)   set(无序集合) hash zset(有序集合)

redis如何存储一个String的。

Set name

Get  name

http://www.runoob.com/redis/redis-data-types.html

--------------------------------------------------------------------------------------------------------------------------------------------------------

redis是单线程的么,所有的工作都是单线程么。
网络请求模块是单线程的,其他是多线程

https://blog.csdn.net/bird73/article/details/79792548

--------------------------------------------------------------------------------------------------------------------------------------------------------

redis的部署方式,主从,集群

分为单节点模式和主从模式(如一主二从)。

redis的哨兵模式

配有哨兵,监控主机,巡逻从机,当主机挂掉时,选举某一台从机为主机

 

https://www.cnblogs.com/yu421/p/8081544.html

--------------------------------------------------------------------------------------------------------------------------------------------------------

一个key值如何在redis集群中找到存储在哪里。

1、当拿到一个key后, redis 先判断当前库的0号哈希表是否为空,如果为true直接返回NULL。

2、判断该0号哈希表是否需要rehash,因为如果在进行rehash,那么两个表中者有可能存储该key。如果正在进行rehash,将调用一次_dictRehashStep方法,_dictRehashStep 用于对数据库字典、以及哈希键的字典进行被动 rehash,这里不作赘述。

3、根据当前字典与key进行哈希值的计算。

4、根据哈希值与当前字典计算哈希表的索引值。

5、根据索引值在哈希表中取出链表,遍历该链表找到key的位置。一般情况,该链表长度为1。

6、当 ht[0] 查找完了之后,再进行了次rehash判断,如果未在rehashing,则直接结束,否则对ht[1]重复345步骤。

到此我们就找到了key在内存中的位置了。

https://blog.csdn.net/agangdi/article/details/21567199

--------------------------------------------------------------------------------------------------------------------------------------------------------

redis的两种持久化策略:

rdb快照模式,直接将数据存在dump里

aof把修改的命令都存储起来

https://blog.csdn.net/u010785685/article/details/52366977

-----------------------------------------------------------------------------------------------------------------------------------------------------------

redis里面也有事务性,MULTI,EXEC,DISCARS,WATCH这4个命令是redis的基石。其中,multi表示开启一个事务,输入后,会返回ok。而exec表示执行。之前用set命令,将一个个任务都排进队列里了,然后用exec一起执行。

如果在排入队列的时候,就有错,那么会报error,取消所有事务的执行。如果是在exec的时候报错,则对的那几步会执行,而错误的会直接报错,不会回滚,也就是说,redis的不支持事务回滚!原因有2,其一,这些开发中的错误,可以避免,不会放在生产上,所以没关系。其二,为了追求简单快速,所以不支持回滚。

参考文献 :https://mp.weixin.qq.com/s/WV-IRe2QUWDkCg8KV_GiOA

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值