[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

 

posted @ 2017-12-13 17:59  liuzhipenglove  阅读(327)  评论(0编辑  收藏  举报