基础篇:
1、五种结构
    1.字符串(strings)
    2.字符串列表(lists)
    3.字符串集合(sets)
    4.有序字符串集合(sorted sets)
    5.哈希(hashes)
2、key不要太长,不要超过1024字节
3、利用redis的INCR、INCRBY、DECR、DECRBY等指令来实现原子计数的效果
4、redis中list底层实现上并不是数组,而是链表,所以插入是时间消耗是在常量级别的
5、
rpush lpush  lrange用于操作list
sadd 用于操作set
zadd 用于操作有序集和
hashes:HMSET  HGETALL存储的是一个份额字符串和字符串的值之间的映射
从服务器向主服务发送SYNC,主服务器就会执行BGSAVE来创建一个子进程专门进行数据持久化工作。
MULTI、EXEC、DISCARD、WATCH:redis事务机制的基础。
FLUSHALL 命令清空所有的数据

所有命令:

set setnx setex append
incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
getset mset msetnx exec sort

 
认识篇:
1、redis的持久化方式:
    RDB(Redis DataBase):就是在不同的时间点,redis储存的数据生成快照并存盘
    AOF(Append Only File):redis会记录下所有执行过的命令,在下次启动的时候在执行一次,就可以实现数据的恢复。
相对来说AOF 实现的恢复程度最高。
断电情况下造成AOF的日志文件损坏可以使用redis-check-aof来进行恢复。
        1.备份被写坏的AOF文件
        2.运行redis-check-aof –fix进行修复
        3.用diff -u来看下两个文件的差异,确认问题点
        4.重启redis,加载修复后的AOF文件
2、redis的从主问题
    redis可以实现一主多重,以及多级从结构,目的是数据备份和读取性能。redis的充足同步是异步进行的,也就是说不会降低redis的处理性能。
 
3、redis事物机制
    事务:一个完整的动作,要么全做完,要么什么都不做。
    1.MULTI用来组装一个事务;
    2.EXEC用来执行一个事务;
    3.DISCARD用来取消一个事务;
    4.WATCH用来监视一些key,一旦这些key在事务执行之前被改变,则取消事务的执行。
    例子很简单,线使用multi命令来开始一个事务,然后将要执行的命令压入事务队列,通过EXEC命令来执行一个事务。
    “调用EXEC之前的错误”,有可能是由于语法有误导致的,也可能时由于内存不足导致的。
高级篇:
1、redis的配置文件,加载方式,./redis-server /path/to/redis.conf
        1.通用(general)
        2.快照(snapshotting)
        3.复制(replication)
        4.安全(security)
        5.限制(limits)
        6.追加模式(append only mode)
        7.LUA脚本(lua scripting)
        8.慢日志(slow log)
        9.事件通知(event notification)
2、配置文件介绍
    通用:默认情况下redis并不是以deamon形式运行,将daemonize no改为yes就可以了
     pidfile /path/to/redis.pid 设置redis.pid文件的生成路径。。
     bind 192.168.1.2 10.8.4.2设置绑定的ip,不设置可以监听所有网卡的请求。
     port 6379 来修改监听的端口。
     timeout 0 但一个连接客户端长时间为进行消息相应时可以关闭连接,0为永不关闭。
     tcp-keepalive 0 心跳检测,设置为0不进行心跳检测。
     loglevel notice配置日志等级debug、verbose、notice、warning
     databases 16设置数据库总量
    快照:主要是涉及到redis的持久化的相关配置
            save 900 1 //表示每15分钟且至少有1个key改变,就触发一次持久化
            save "" 禁用RDB策略
            rdbchecksum yes 让CRC64算法来进行数据校验,会增加10%的性能消耗
            dbfilename dump.rdb 设置快照名称
    复制:提供主从同步的
            slaveof <masterip> <masterport>实现将redis设置为另一台主服务器的从服务器设备。
            masterauth <master-password>主服务设置的校验要求
            redis失去了与主服务器的连接后:如果slave-serve-stale-data设置为yes(默认),则从redis仍会继续响应客户端的读写请求。如果slave-serve-stale-data设置为no,则从redis会对客户端的请求返回“SYNC with master in progress”,当然也有例外,当客户端发来INFO请求和SLAVEOF请求,从redis还是会进行处理。
            slave-read-only yes设置redis是否接受写请求
            rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52只读服务器不适合暴露给外部,屏蔽外部的直接调用。
            repl-ping-slave-period 10 从服务器周期性线主redis发ping包。
            repl-timeout 60超时
            repl-disable-tcp-nodelay no关闭会数据同步的延时会降低,但会消耗更多的宽带
            repl-backlog-size 1mb主从设备间的发送消息队列,这样设置断开后可以再次传送。
            repl-backlog-ttl 3600 长时未再次连接上后进行队列的清空。
    安全:
            requirepass zhimakaimen 客户端在连接redis之前先进行验证
            rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c89 更改内部命令,将一些关键的命令更改为更为复杂的名称。
            rename-command CONFIG ""也可以禁调一些命。
    限制:
            maxclients 1000限制最大的客户端连接量
    追加模式:目的在于最好的防止数据丢失
            appendonly no 打开追加模式,最多只有一秒钟的数据会丢失
            appendfilename "appendonly.aof"
            appendfsync everysec 追加模式no,always everysec,每一秒进行一次,折中考虑。
    LUA:
             lua-time-limit 5000lua驾崩最大的运行时间,单位为毫秒
    慢日志:
            slowlog-log-slower-than 10000设置日志时长,单位为微秒。
            slowlog-max-len 128设置最大长度

    高级配置:
 

有关哈希数据结构的一些配置项:


hash-max-ziplist-entries 512
hash-max-ziplist-value 64

有关列表数据结构的一些配置项:

list-max-ziplist-entries 512
list-max-ziplist-value 64

有关集合数据结构的配置项:

set-max-intset-entries 512

有关有序集合数据结构的配置项:

zset-max-ziplist-entries 128
zset-max-ziplist-value 64

关于是否需要再哈希的配置项:

activerehashing yes

关于客户端输出缓冲的控制项:

client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

有关频率的配置项:

hz 10

有关重写aof的配置项
aof-rewrite-incremental-fsync yes
posted on 2015-09-10 10:23  自由恶魔  阅读(173)  评论(0)    收藏  举报