zoukankan      html  css  js  c++  java
  • [ecmagent][redis学习][1初识redis] redis安装+redis快速教程+python操作redis

    # redis安装

    # redis安装教程
    
        -- 服务器(ubuntu)安装redis服务
                sudo apt-get install redis-server
                
        -- 源码安装
            --     $ wget http://download.redis.io/releases/redis-4.0.6.tar.gz
                $ tar xzf redis-4.0.6.tar.gz
                $ cd redis-4.0.6
                $ make  # 编译,需要先安装gcc
                $ make install  # 安装成功之后,会自动将可执行文件(6个)拷贝到/etc/init.d/里面
            
            -- 安装成功之后
                -- 输入命令redis-server,启动redis服务
                
            -- 测试,进入自带的redis客户端: 输入命令redis-cli
                -- 输入ping,会返回PONG,说明安装成功
                
    # redis配置教程
        http://blog.csdn.net/qq_30242609/article/details/52913145
                
        -- redis配置访问密码
            
        
        -- redis设置允许远程访问
            # bind 127.0.0.1
    
        
        -- redis设置开机自启动(未做)
            
    
    # redis检测
        #检测后台进程是否存在
        ps -ef |grep redis
    
        #检测6379端口是否在监听
        netstat -lntp | grep 6379
    
        #使用`redis-cli`客户端检测连接是否正常
        ./redis-cli
        
        127.0.0.1:6379> keys *
        (empty list or set)
        127.0.0.1:6379> set key "hello world"
        OK
        127.0.0.1:6379> get key
        "hello world"
        
        
        
    # redis 启动
    
        - 命令启动  redis-server
        
        - 配置文件启动
            修改配置文件:redis.conf (/root/redis_dir/redis-4.0.6/redis.conf)
                #修改daemonize为yes,即默认以后台程序方式运行(还记得前面手动使用&号强制后台运行吗)。
                daemonize no
                #可修改默认监听端口
                port 6379
                #修改生成默认日志文件位置
                logfile "/home/futeng/logs/redis.log"
                #配置持久化文件存放位置
                dir /home/futeng/data/redisData
            
                
            -- 配置启动
                redis-server /root/redis_dir/redis-4.0.6/redis.conf
                
            -- 打开redis客户端 redis-cli -p 6379
                    >> ping hello
                    
    # redis关闭
        - redis-cli 
        >> shutdown
        # 查看是否已经关闭
        - netstat -lntp |grep 6379
    View Code

    #2 redis快速教程

    # reids操作教程http://try.redis.io/
        #1 value字符串数据
    
            - 增加一条字符串记录ranking:category为key, "hello"为value
                    set ranking:category "hello"
    
            - 获取ranking:category的值
                    get ranking:category
                    
        #2 value整数数据
            - 增加一条数字记录
                    set views 10
            
            - 自增views
                    incr views   # 得到结果为11
                    
            - 删除key,value        # 只是将views的值清0,而已
                    del views
                    此时还可以incr views
        
            
            # 客户端运行结果展示
                127.0.0.1:6379> set views 10
                OK
                127.0.0.1:6379> incr views
                (integer) 11
                127.0.0.1:6379> del views
                (integer) 1
                127.0.0.1:6379> incr views
                (integer) 1
                127.0.0.1:6379> 
    
        #3     value列表数据
            增加一条列表记录,(value为列表), redis支持列表,rpush, lpush,llen, lrange, lpop,rpop
        
            - 从列表头部插入数据
                lpush friends "lzp" , key为friends, value为列表,“lzp"为列表的元素
            
            - 从列表尾部插入数据
                rpush friends "dd"
                
            - 对列表切片
                lrange friends 0 -1   # 从头到尾
                lrange friends 0 2
                
            - 计算列表的长度llen
                llen friends
                
            - 从列表头部出栈,并获取该元素
                lpop friends 
            - 从列表尾部出栈,并获取该元素
                rpop friends
                
            # 客户端展示
                127.0.0.1:6379> lpush friends "lzp"
                (integer) 1
                127.0.0.1:6379> rpush friends "lzp"
                (integer) 2
                127.0.0.1:6379> rpush friends "dd"
                (integer) 3
                127.0.0.1:6379> 
                127.0.0.1:6379> lrange friends 0 -1
                1) "lzp"
                2) "lzp"
                3) "dd"
                
                127.0.0.1:6379> llen friends
                (integer) 3
                127.0.0.1:6379> lpop friends
                "lzp"
                127.0.0.1:6379> rpop friends
                "dd"
                127.0.0.1:6379> 
    
        # value为set(无序,且元素只能出现一次)add, remove, ismember, members, union(求并集)
            -- sadd, srem, sismember, smembers, sunion
            
            - 往set增加元素
                sadd supervisors "fligh"
                sadd supervisors "lzp"
            - 从set删除某个元素
                srem supervisors "lzp"
            
            - 判断是否为set的成员, 1表示是,0表示不是
                sismember supervisors "lzp" 
            
            - 得到set的所有元素
                smembers supervisors
                
            - 求两个set的并集
                sadd set1 "lzp"
                sadd set1 "wy"
                sadd set2 "hr"
                sunion set1 set2
                
        # value为有序集合sorted set; sorted set有 key, value, score, 普通的set 有key ,value
            - 往sorted set添加数据
                zadd student 1992 "alen"  # 1940就是score, 这里是出生年份
                zadd student 1990 "lzp"
                zadd student 1991 "wy"
                zadd student 1988 "ww"
            - 获取student的数据,
                zrange student 0 -1
            
            # 客户端练习
                127.0.0.1:6379> zadd student 1992 "alen"
                (integer) 1
                127.0.0.1:6379> zadd student 1989 "lzp"
                (integer) 1
                127.0.0.1:6379> zadd student 1990 "wenyi"
                (integer) 1
                127.0.0.1:6379> zadd student 1970 "ww"
                (integer) 1
                127.0.0.1:6379> zrange student 0 -1
                1) "ww"
                2) "lzp"
                3) "wenyi"
                4) "alen"
                127.0.0.1:6379> 
        
            
        # hash  --->字符串和value的映射,比如name 和“liuzhipeng"的映射, age 和 13的映射, email 和”liucpliu@sina.cn"的映射
            --格式 hset key  string  value
            hset user:1000  name  "liuzhipeng"
            hset user:1000  age  18
            hset user:1000  email "liucpliu@sina.cn"
            
            
            -- 一次性插入数据
                hset user:1001 name "wenyi" age 20 email "ww@sina.cn"
            
            -- 获取用户的所有信息
                127.0.0.1:6379> hgetall  user:1000
                1) "name"
                2) "lzp"
                3) "age"
                4) "20"
                5) "email"
                6) "liucpliu@sina.cn"
            
            -- 获取用户的某部分信息
                127.0.0.1:6379> hget user:1000 name
                "lzp"
                127.0.0.1:6379> hget user:1000 email
                "liucpliu@sina.cn"
            
            
        
            -- hash里面数字自增
                hincrby user:1000 age 1
                hincrby user:1000 age 2
    View Code

     #3 将redis作为服务

    1、配置服务脚本
        
        # step1 
            redis源码目录下有个utils目录,里面有redis_init_script文件,将其拷贝到/etc/init.d/目录下,并重名为redisd
            
            sudo cp utils/redis_init_script /etc/init.d/redisd
        
        # step2 
            修改该文件
            sudo vim /etc/init.d/redisd
            
            # redisd
            REDISPORT=6379
            EXEC=/usr/local/redis/bin/redis-server
            CLIEXEC=/usr/local/redis/bin/redis-cli
    
            PIDFILE=/var/run/redis_${REDISPORT}.pid
            CONF="/etc/redis/${REDISPORT}.conf"
            
    
    2、配置文件
    
        # setp1 源码根目录下有个redis.conf的配置文件,复制并修改名称,注意这个名称和上面的/etc/redis/${REDISPORT}.conf的配置对应。
    
            sudo mkdir /etc/redis
            sudo cp redis.conf /etc/redis/6379.conf
        
        # step2 打开文件修改的内容如下:
    
            #设置后台运行
            daemonize yes  
            #设置log文件路径
            logfile /vagrant_data/var/log/redis/redis-server.log  
            #设置持久化文件存放路径
            dir /vagrant_data/var/lib/redis 
            注意:上面的几个目录是没有的,需要事后创建文件夹
        # step3
            sudo mkdir -p /vagrant_data/var/log/redis
            sudo mkdir -p /vagrant_data/var/lib/redis
    
    3、使用update-rc.d注册服务
    
        #设置服务脚本有执行权限
        sudo chmod +x /etc/init.d/redisd
        #注册服务
        cd /etc/init.d/
        sudo update-rc.d redisd defaults
    
    4、服务常用命令
    
        #启动Redis服务
        sudo service redisd start  
        #关闭服务
        sudo service redisd stop  
        #重启服务:
        sudo service redisd restart  
    
    5、排错
    
        上面设置的服务不一定能正常启动,通常可以使用/etc/init.d/redisd start运行,然后进去/var/log/redis/目录下查看日志来排除错误,这个路径就是服务脚本设置的路径。
    
     
    
    参考:
    
    http://blog.csdn.net/softwave/article/details/53838194
    View Code
  • 相关阅读:
    Rate Control Mode
    帝国的困境:80-20法则
    ARM NEON 64bit 查找表替换
    Video Brightness Enhancement
    HDR(High Dynamic Range)
    C++ C++
    Machine Learning
    图像处理
    Facial landmark detection
    git
  • 原文地址:https://www.cnblogs.com/liuzhipenglove/p/8034223.html
Copyright © 2011-2022 走看看