Redis基本知识
- NoSQL:是以Key-Value的形式存储数据。特点:非关系型的、分布式的、开源的、水平可拓展的。
- 使用场景
- 对数据高并发读写
- 对海量数据的高效率存储和访问
- 对数据的高可扩展性和高可用性。
- Redis3.X版本集群
Redis3.X版本,集群通过一些配置文件配置即可完成,简单。
redis cluster在设计的时候,就考虑到了去中心化,去中间件,也就是说,集群中的每个节点都是平等的关系,都是对等的,每个节点都保存各自的数据和整个集群的状态。每个节点都和其他所有节点连接,而且这些连接保持活跃,这样就保证了我们只需要连接集群中的任意一个节点,就可以获取到其他节点的数据。Redis 集群没有并使用传统的一致性哈希来分配数据,而是采用另外一种叫做哈希槽 (hash slot)的方式来分配的。
redis-trib.rb用来创建集群。 - 常用命令
String类型:命令基本是成对出现。get/set mget/mset 单设取、多设取、长度[位置]设取、增减操作、追加操作、等。
Hash类型:与String类似;
List类型: 主要的操作是push和pop。可以从头部或尾部开始。 可以读取范围。 可以当做是队列、栈等结构。
Set类型:无序的集合/没有重复的元素。 添加、删除[弹出]、集合之间的操作[并集、差集、交集等]
zset是set的升级版:只是加多了一列序号。变成了有序集合。
键值命令:keys 、type、 expire、presist、rename、del、ttl、move、exists
服务器命令:ping、echo、select 、quit、exit、dbsize、info、config get、flushdb、flushall。
docker容器配置Redis的使用
# Version 0.0.1
FROM redis:3.2.1
#创建文件所在目录
RUN mkdir -p /data
RUN mkdir -p /conf
#VOLUME
VOLUME ["/data","/conf"]
COPY redis.conf /conf/redis.conf
CMD ["/usr/local/bin/redis-server", "/conf/redis.conf"]
#增加密码认证
requirepass honkon
#不限定连接的IP
bind 0.0.0.0
#指定端口号
port 6379
/var/lib/docker/hq/redis/conf /conf rw
/var/lib/docker/hq/redis/data /data rw