NoSQL--Redis
Redis简介
Redis和Memcached类似,也属于k-v数据存储 Redis官网:redis.io 支持更多value类型,除了和string外,还支持hash、lists(链表)、sets(集合)和sorted sets(有序集合) redis使用了两种文件格式:全量数据(RDB)和增量请求(aof)。 全量数据格式是把内存中的数据写入磁盘,便于下次读取文件进行加载。 增量请求文件则是把内存中的数据序列化为操作请求,用于读取文件进行replay得到数据,这种类似于mysql binlog。redis的存储分为内存存储、磁盘存储和log文件三部分。
安装Redis
Redis 持久化
Redis持久化说明:
Redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File) RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上。 AOF,则是换了一个角度来实现持久化,那就是将redis执行过的所有写指令记录下来 在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了 其实RDB和AOF两种方式也可以同时使用,在这种情况下,如果redis重启的话 则会优先采用AOF方式来进行数据恢复,这是因为AOF方式的数据恢复完整度更高 如果没有数据持久化的需求,也完全可以关闭RDB和AOF方式 这样的话,redis将变成一个纯内存数据库,就像memcache一样。
Redis持久化相关参数
/etc/redis.conf配置文件中的一些参数
Redis 的数据类型
1:String
2:List
3:set 集合
# set是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。 # 操作中key理解为集合的名字。 # 比如在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。 # 因为 Redis 非常人性化的为集合提供了求交集、并集、差集等操作, # 那么就可以非常方便的实现如共同关注、共同喜好、二度好友等功能, # 对上面的所有集合操作,你还可以使用不同的命令选择将结果返回给客户端还是存集到一个新的集合中。
4:Sort set 有序列表
# sorted set是有序集合,它比set多了一个权重参数score,使得集合中的元素能够按 score 进行有序排列, # 比如一个存储全班同学成绩的 Sorted Sets, # 其集合 value 可以是同学的学号,而 score 就可以是其考试得分, # 这样在数据插入集合的时候,就已经进行了天然的排序。
5:Hash
Redis常用操作
string相关操作:
list相关操作:
sets集合相关操作
stored sets 有序集合相关操作
hash 常用操作
Redis常用操作(键值)
Redis常用操作(服务)
Redis安全设置
Redis慢查询日志
安装php-redis扩展模块
PHP使用redis存储session
修改php配置连接redis的配置
测试效果
Redis集群
Redis集群简介
# 多个redis节点网络互联,数据共享 # 所有的节点都是一主一从(可以是多个从),其中从不提供服务,仅作为备用 # 不支持同时处理多个键(如mset/mget),因为redis需要把键均匀分布在各个节点上,并发量很高的情况下同时创建键值会降低性能并导致不可预测的行为。 # 支持在线增加、删除节点 # 客户端可以连任何一个主节点进行读写。
搭建Redis集群
实验环境
配置文件内容,需要更改相关的ip和端口,dir等参数
A机器:
B机器
安装ruby2.2,以及redis和ruby相关的工具
Redis集群的配置与操作
将redis的ruby脚本复制到 /usr/bin 目录下 方便使用
cp /usr/local/src/redis-4.0.1/src/redis-trib.rb /usr/bin/
使用脚本配置集群
配置结果
以集群的方式登录
检测集群状态
查看所有节点
redis-cli -c -h 10.1.1.101 -p 7000
查看集群信息
移除某个节点
添加节点
将当前节点设置为指定节点的从