redis 学习

redis 是使用c 来写的

redis 安装与启动

1、redis 安装,https://www.cnblogs.com/zuidongfeng/p/8032505.html1

2、启动redis,有两种方式:redis-cli ,还有一种是使用./redis-server ../redis.conf (注意,如果使用了密码+ip的形式,则需要这样启动)

3、要使redis可以远程使用ip+端口+密码形式进行链接(要把bind注释掉),需要把redis.conf 里面的equirepass 启用,如下:

 

这里要特别注意,requirepass前面不要有空格

4、如果设置了密码,使用redis-cli 操作的时候,需要先auth password 进行授权

./redis-cli shutdown

5、使用密码连接的时候,需要如下设置:

 protected-mode no

 

6、防火墙允许端口通过

firewall-cmd --add-port=123/tcp --permanent

--查询所有打开的防火墙端口

firewall-cmd --zone=public --list-ports

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

redis 备份

redis 备份,有两种方式:aof、rdb 。其中aof是基于命令的,而rdb则是基于数据文件的。默认的是aof 模式。这些信息可以在redis.config 中看到

可以aof和rdb混合着用。

 

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

redis 的集群:

在redis.conf 中,有个sentinel 的参数

 

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

redis 命令:

flushall 清空所有的redis数据,不过这个命令很危险

select dbindex ,例如:select 1 ,就是切换到db1

append key value   向指定的key追加字符串

strlen  key  获得key对应的value的长度

mget  key key..  同时获得多个key的value

mset key value  key value  key value …     同事设置多个key的value

 

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

有关锁的一些知识

1、锁是没失效时间的

2、锁是非阻塞的,获取不了锁,就会失败,当然可以一直等待到获取锁

实现锁

1、数据库

2、redis 的sentNx。这个命令只有在key不存在的情况下为key设置值。所以可以利用这个特性来实现分布式锁的操作

3、利用zookeeper的znode唯一性或者有序的临时最小节点,使用curator客户端会比较简单,已经封装好(zookeeper会保证节点的唯一性)

zookeeper的优势

1. 可靠性高、实现简单

2. zookeeper因为临时节点的特性,如果因为其他客户端因为异常和zookeeper连接中断了,那么节点会被删除,意味着锁会被自动释放

3. zookeeper本身提供了一套很好的集群方案,比较稳定

4. 释放锁操作,会有watch通知机制,也就是服务器端会主动发送消息给客户端这个锁已经被释放了

 

posted on 2019-02-19 11:21  drafire  阅读(239)  评论(0编辑  收藏  举报