• redis基本和命令


    忙了很久一直没时间整理工作中的零零星星,现在把工作过程中的点点滴滴的笔记搬到博客上,以飨读者和自己;

    0. redis基本路径
            Selected config:
            Port           : 6379
            Config file    : /etc/redis/6379.conf
            Log file       : /var/log/redis_6379.log
            Data dir       : /var/lib/redis/6379
            Executable     : /usr/local/bin/redis-server
            Cli Executable : /usr/local/bin/redis-cli
    
        Lua启动,选择加载配置项
            服务端:
            #/usr/local/bin/redis-server /etc/redis/6379.conf
            客户端:
            #/usr/local/bin/redis-cli
    
        Redis数据类型及操作:
            String:
            指令:{
                    set
                    setnx       :如果key已经存在, 返回0
                    setex       :指定键值对的有效期, setex [key] [expire] [value]   /类似于:set [key] [value] [EX expire]
                    setrange    :设置key-value值的子字符串,下标从0开始到第i位置,不包含i
                    mset
                    msetnx
                    get
                    getset
                    getrange
                    mget
                    incr
                    incrby
                    decr
                    decrby
                    append
                    strlen
                }
    
            Hash:是一个string类型的field-value的映射表,它的添加删除平均都是O(1)的效率
            指令:{
                    hset
                    hsetnx
                    hmset
                    hget
                    hmget
                    hincrby
                    hexists
                    hlen
                    hdel
                    hkeys
                    hvals
                    hgetall
                }
    
            List:是一个链表结构, 主要功能是pop,push,获取一个范围的所有值等,key理解为链表的名字
                    list类型其实就是每一个子元素都是string类型的双向链表.
            指令:{
                    lpush   
                    rpush
                    linsert   : linsert key [BEFORE|AFTER] [pivot] [value]
                                在list的特定的值的位置之前或之后添加字符串元素
                    lset      : lset key [index] [value] 设置list中指定下标的元素值
                    lrem      : lrem key [count] [value] 从list中删除count个和value相同的元素
                                count>0,从头删除;
                                count=0,全部删除;
                                count<0,从尾删除;
                    ltrim     : ltrim key [start] [stop] 保留key的值中指定范围内的数据
                    lpop      : 从list的头部删除元素
                    rpop      : 从list的尾部删除元素
                    rpoplpush : rpoplpush [source] [destination], 整个操作是原子的
                                从source的尾部移除元素,并添加到destination的头部,返回被移除的元素值
                    lindex    : lindex key [index] 取list中index位置的元素
                    llen      : 返回key对应list的长度
                }
    
            Set:
            指令:{}
    
    
            键值指令:
                [
                    keys :返回给定pattern的所有key
                    exists: 确认一个key是否存在
                    del : 删除一个key
                    expire : 设置一个key的过期时间(秒为单位)
                    ttl : 用于获取key的有效时长
                    persist : 移除给定key的过期时间
                    move : 把当前数据库中的key移动到其它库中
                    rename : 重命名key
                ]
    
    
            服务指令:
                [
                    select :选择数据库存取, redis数据库编号从 0~15 默认16个库
                    dbsize :获取当前数据库的key
                    info :  获取服务器的信息和统计,用于说明服务器的基础信息,包括版本启动时间等;
                    config get: 获取服务器配置信息
                    flushdb : 删除当前选择数据库中的所有key
                    flushall : 删除所有库中的所有key
                ]
    
    
        主从复制基本配置:
            Redis主从复制中一个主服务可以有多个服务, 一个从服务可以有多个从服务;
            对应配置,只需要修改redis.conf中的slaveof参数
                #slaveof <masterip> <masterport>
                slaveof 127.0.0.1 6379
    
        启动master
                #redis-server /usr/local/redis/conf/redis_6379.conf
                #redis-cli
        启动slave(假设端口3689)
                #redis-server /usr/local/redis/conf/slave.conf
                #redis-cli -p 6389
    
            如果master服务设置有密码,则需要配置masterauth参数
                masterauth <master-password>
    
            查看redis连接数
                redis-cli info | grep connected
    
                如果客户端的idle空闲时间太长,连接池维持了太多的连接,则需要把不用的连接及时释放掉;
                redis 127.0.0.1:6379> client list
                redis 127.0.0.1:6379> CONFIG SET timeout 30
    
        Cluster集群配置
            cluster-enabled yes 开启
            每一个集群节点有一个集群配置文件;它不是手工创建的,是redis节点创建和更新的;
            确保同一系统上运行的redis集群节点的配置文件名不重叠
    
    1. redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,
        并且在此基础上实现了master-slave(主从)同步
    
    2. pipeline 压缩请求数量
        pipeline机制将多个命令汇聚到一个请求中,可以有效减少请求数量,减少网络延时。
    
    3. script 压缩复杂请求
        script核心思想是在redis命令里嵌入Lua脚本,来实现一些复杂操作。
    
    4. cluster
         Redis 集群不像单机版本的 Redis 那样支持多个数据库,集群只有数据库 0,而且也不支持 SELECT 命令。
  • 相关阅读:
    WCF学习资料
    浅谈Configure和Setting
    面向对象的设计原则与目标[总结篇]
    异步调用与线程(总结篇)
    博客园“图灵微软名著杯博问大赛”
    《Flex 3权威指南》——Adobe官方培训教材
    Google和Yahoo专家眼中的JavaScript设计模式
    拥抱iPhone,拥抱软件开发的未来 ——转帖:中华读书报
    iPhone开发:抢先拥抱软件开发的未来
    jQuery之父强烈推荐之jQuery实战
  • 原文地址:https://www.cnblogs.com/foundwant/p/6381912.html
Copyright © 2020-2023  润新知