redis

1、使用ANSIC编写 (基于BSD协议)
2、开源、内存中数据结构存储
3、可以用作数据库、缓存、消息中间件

支持多种数据结构
String、hash、list、set、sorted sets、bitmaps、geospatial
字符串、散列、列表、集合、有序集合、bitmaps、地理空间

redis内置 复制(application) LUA脚本 LRU驱动事件、事物(transtrations) 和不同级别的硬盘持久化
并通过redis哨兵(sentinel)和自动分区(cluster)提高可用性

Redis支持每隔一段时间将数据导出磁盘、支持主从复制、且第一次是快速非阻塞形式

由于组合式压缩、内存使用率要高于memcached

{———-}

其他:

1
2
3
4
5
事物
订阅分发
lua脚本
过期自动删除key
自动故障转移

优势

1
2
3
4
性能极高、读11W次/s  写8.1W次/s
丰富的数据类型
原子性操作
丰富特性、支持publish、sub scribe 通知 key过期等等

redis命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
创建当前备份 save
恢复数据:config get dit "dir" "usr/local/redis/bin"
将dump移动到安装目录 并启动服务即可
创建备份:
Bg save
background saving started 该命令后台执行
恢复备份
redis-cli --rdb /tmp/dump.rdb
检查主从数据流:从模式 redis-cli --slave
从配置修改: slave-read-only yes
从数据库: slave of host:port
清空: flushall
远程连接: redis-cli -h host -p port -a password

redis发布订阅

1
2
3
4
5
6
7
8
9
声明客户端 subscribe  redischat
推动消息 publish redischat "this is a exp"
创建集合 sadd a redis
set sadd a memcached
smembers a
创建列表结合list
lpush a redis
lpush a mysql
lrange a 0/0

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
yum install redis -y

cat /etc/redis.conf


默认配置可能要修改的数据
logfile /var/log/redis/redis.log
slave-serve-stale-data yes
slave-read-only yes
#requirepass redisPassword

# The filename where to dump the DB
dbfilename dump.rdb

内存结构

1、简单动态字符串(SDS)防止缓冲区溢出、减少字符串拼接带来的内存重新分配【非预分配内存策略】
2、链表(双向)–list
3、字典
4、跳跃表(每个节点维持多个指向其他节点的指针 zskiplist、zskipnode)–sorted set
5、整数集合
6、压缩列表–list hash
7、对象