客户端是否启动  netstat -tunpl | grep 6379
启动客户端  redis-server redis.conf
进入客户端  redis-cli.exe -h 127.0.0.1 -p 6379
关闭客户端  pkill redis-server
设置auth的cookie值  setcookie( 'auth', $auth, time()+86400 )
删除auth的cookie值  setcookie( 'auth', '', time()-1 )
前台跳转  header('location:list.php')

redis数据类型
1.string  key=>value

    set  set name lijie
    get  get name 
    setnx(如果key存在,返回0,不设置不更新)
    setex   设置值和有限期  setex haircolor 10 red
    setrange  setrange name 6 gmail.com  (lijie@126.com--->lijie@gmail.com)
    mset  设置多个key的值,1所有都成功,0都不成功
    msetnx 设置多个key的值,1所有都成功,0都不成功,不会覆盖之前的key值
    
    get  get name
    getset      获取旧值,设置新值  getset key6 30
    getrange   获取子集的部分     getrange name 0 5
    mget   获取多个value值  mget key1 key2 key3 key4
    
    incr  对某个值递增 incr key6
    incrby 加指定值 key不存在时候,设置并认为是0  incrby key6 5    incrby key6 -5
    decr 
    decrby 
    append 指定字符串追加 append name .net
    strlen 获取字符串长度 strlen name

2.hash string类型的field和value的映射表
    
    hset    user:001 name lijie (user:001是一张表,对里面的name赋值,不能覆盖,即使里面有一个字段)
    hget    hget user:001 name  (获取user:001的name值)      
    hsetnx  hset user:001 name lijie(设置不成功)
    hmset   hmset user:001 name lijie age 20
    hmget   hmget user:001 name age
    hincrby  
    hexists
    hlen    hlen user:001  字段数量
    hdel    hdel user:001 age
    hkeys   hkeys user:001 
    hvals  
    hgetall  

3.list 链表架构,push、pop、一个key的范围(栈和队列同时具备)

    lpush  从头部压入一个元素 
    lrange  lrange mylist 0 -1 取出全部元素
    rpush  从尾部压入元素
    linsert   linsert list3 before one three
    lset    lset list5 1 four 指定下标的值替换掉
    lrem    lrem list5 n one (n > 0 从头删除,n = 0,全部删除,n < 0,从尾删除) 
    ltrim   保留key的值的范围内的数据   ltrim list8 1 -1 (保留下表1到最后) 
                                        ltrim list8 1 2(保留下表1和2的)
    lpop 从头部删除,并返回删除元素
    rpop 从尾部删除,并返回删除元素
    rpoplpush 尾弹出头压入
    lindex 返回下标为key的index的元素  lindex mylist 1(返回下标为1的元素)
    llen 
    
4.set  string类型的无序集合(不允许有重复的值) 并集、交集、差集

    sadd   集合中添加元素
    smembers   查询集合中元素
    srem   删除名称为key的set中的元素
    spop   随机删除名称为key的set中的元素,返回删除的数据
    sdiff  两个集合的差集 返回第一个可以的交集
           myset1  one,two  myset2 two,three
           sdiff myset1 myset2   ->  one
           sdiff myset2 myset1   ->  three
    sdiffstore  sdiffstore myset3 myset1 myset2 (1与2的差集存在3中)
    sinter 返回key的交集
    sinterstore 交集存到一个地方
    sunion 并集
    sunionstore 交集存在一个地方
    smove  将第一个集合的元素移动到第二个集合
           smove myset1 myset2 three   1的three元素移动到2中
    scard  获取几个个数
    sismember 某个值是否是集合中的元素
    srandmember 随机取出集合中的元素

5.zset 有序排列
    
    zadd 添加元素并指定顺序,如果存在则更新排序 zadd myset 1 one
    zrange zrange myset 0 -1 withscores
    zrem 删除元素
    zincrby 存在元素则顺序变化为顺序号,不存在则插入 zincrby sset1 3 one
    zrank  返回元素的下标(从小到大排列)
    zrevrank 返回元素的下标(从大到小排列
    zrangebyscore     zrangebyscore myset 2 3 withscores
    zcount    zcount myset 2 3
    zcard   返回所有元素个数
    zremrangbyrank  删除索引(下标)元素  zremrangbyrank myset 1 1(删除下标为1的元素)
    zremrangbyscore 删除排序元素  zremrangbyscore myset 1 2(删除排序1,2的元素)

redis常用命令
    
1、键值相关命令

    keys 返回所有键  keys *   keys my*
    exists 确认key是否存在    exists age
    del 删除一个键   del age 
    expire 对key设置过期时间   expire addl 10 (addr 10秒过期)
    ttl  addl 获取key的有效时长(-1代表已过期)
    select 连接数据库    select 0  
    persist 移除给定key的过期时间(此key不受过期时间限制)
    randomkey 随机返回key空间的一个key
    remane 重命名key    rename age age1
    type  返回键的类型

2、服务器相关命令
    
    ping   出现 PONG 则显示正常
    echo   
    select 选择数据库
    quit exit 断开客户端
    dbsize 返回数据库中key的数目
    info 获取服务器信息
    config get 实时转储收到的请求 congif get timeout
    flushdb 删除当前选择数据库的所有key
    flushall 删除所有数据库中的所有键

redis高级应用

1、安全性
    redis.conf里修改requirepass beijing,重启一下redis.conf
    
    方法1: *******/redis-cli
            auth beijing
    方法2: *******/redis-cli -a beijing
    
2、主从复制

    1.master可拥有多个slave
    2.多个slave都可连接master,也可以连接别的slave
    3.同步数据不影响客户端写入
    4.伸缩性

    配置从服务器
        加入配置 
        slaveof 192.168.1.1 6379
        masterauth beijing

3、事务处理

    age 10
    multi  
    set age 20
    set age 30
    exec
    get age  ->30

    age 10
    multi
    set age 20
    set age 30
    discard
    get age  ->10
    
    队列中有错误,事务不会回滚
    

4、持久化机制
5、发布订阅信息
6、虚拟内存使用