zoukankan      html  css  js  c++  java
  • Ubuntu16.04安装Redis

    原文地址

    http://blog.fens.me/linux-redis-install/

    前言

    Redis是常用基于内存的Key-Value数据库,比Memcache更先进,支持多种数据结构,高效,快速。用Redis可以很轻松解决高并发的数据访问问题;做为时时监控信号处理也非常不错。

    环境

    原文:Ubuntu 12.04 
    本人:经测试Ubuntu 16.04仍适用

     

    安装Redis服务器端

    ~ sudo apt-get install redis-server

    安装完成后,Redis服务器会自动启动,我们检查Redis服务器程序

     

    检查Redis服务器系统进程

    ~ ps -aux|grep redis
    redis     4162  0.1  0.0  10676  1420 ?        Ss   23:24   0:00 /usr/bin/redis-server /etc/redis/redis.conf
    conan     4172  0.0  0.0  11064   924 pts/0    S+   23:26   0:00 grep --color=auto redis

     

    通过启动命令检查Redis服务器状态

    ~ netstat -nlt|grep 6379
    tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN

     

    通过启动命令检查Redis服务器状态

    ~ sudo /etc/init.d/redis-server status
    redis-server is running

    通过命令行客户端访问Redis

    安装Redis服务器,会自动地一起安装Redis命令行客户端程序。

    在本机输入redis-cli命令就可以启动,客户端程序访问Redis服务器。

    ~ redis-cli
    redis 127.0.0.1:6379>
    
    # 命令行的帮助
    
    redis 127.0.0.1:6379> help
    redis-cli 2.2.12
    Type: "help @" to get a list of commands in 
          "help " for help on 
          "help " to get a list of possible help topics
          "quit" to exit
    
    
    # 查看所有的key列表
    
    redis 127.0.0.1:6379> keys *
    (empty list or set)
    

    基本的Redis客户端命令操作

    增加一条记录key1

    redis 127.0.0.1:6379> set key1 "hello"
    OK
    
    # 打印记录
    redis 127.0.0.1:6379> get key1
    "hello"

    增加一条数字记录

    set key2 1
    OK
    
    # 让数字自增
    redis 127.0.0.1:6379> INCR key2
    (integer) 2
    redis 127.0.0.1:6379> INCR key2
    (integer) 3
    
    # 打印记录
    redis 127.0.0.1:6379> get key2
    "3"

    增加一个列表记录key3

    redis 127.0.0.1:6379> LPUSH key3 a
    (integer) 1
    
    # 从左边插入列表
    redis 127.0.0.1:6379> LPUSH key3 b
    (integer) 2
    
    # 从右边插入列表
    redis 127.0.0.1:6379> RPUSH key3 c
    (integer) 3
    
    # 打印列表记录,按从左到右的顺序
    redis 127.0.0.1:6379> LRANGE key3 0 3
    1) "b"
    2) "a"
    3) "c"

    增加一个哈希记表录key4

    redis 127.0.0.1:6379> HSET key4 name "John Smith"
    (integer) 1
    
    # 在哈希表中插入,email的Key和Value的值
    redis 127.0.0.1:6379> HSET key4 email "abc@gmail.com"
    (integer) 1
    
    # 打印哈希表中,name为key的值
    redis 127.0.0.1:6379> HGET key4 name
    "John Smith"
    
    # 打印整个哈希表
    redis 127.0.0.1:6379> HGETALL key4
    1) "name"
    2) "John Smith"
    3) "email"
    4) "abc@gmail.com"

    增加一条哈希表记录key5

    # 增加一条哈希表记录key5,一次插入多个Key和value的值
    redis 127.0.0.1:6379> HMSET key5 username antirez password P1pp0 age 3
    OK
    
    # 打印哈希表中,username和age为key的值
    redis 127.0.0.1:6379> HMGET key5 username age
    1) "antirez"
    2) "3"
    
    # 打印完整的哈希表记录
    redis 127.0.0.1:6379> HGETALL key5
    1) "username"
    2) "antirez"
    3) "password"
    4) "P1pp0"
    5) "age"
    6) "3"

    删除记录

    # 查看所有的key列表
    redis 127.0.0.1:6379> keys *
    1) "key2"
    2) "key3"
    3) "key4"
    4) "key5"
    5) "key1"
    
    # 删除key1,key5
    redis 127.0.0.1:6379> del key1
    (integer) 1
    redis 127.0.0.1:6379> del key5
    (integer) 1
    
    # 查看所有的key列表
    redis 127.0.0.1:6379> keys *
    1) "key2"
    2) "key3"
    3) "key4"

    修改Redis的配置

    使用Redis的访问账号

    默认情况下,访问Redis服务器是不需要密码的,为了增加安全性我们需要设置Redis服务器的访问密码。设置访问密码为redisredis。

    用vi打开Redis服务器的配置文件redis.conf

    ~ sudo vi /etc/redis/redis.conf
    
    #取消注释requirepass
    requirepass redisredis

    让Redis服务器被远程访问

    默认情况下,Redis服务器不允许远程访问,只允许本机访问,所以我们需要设置打开远程访问的功能。

    用vi打开Redis服务器的配置文件redis.conf

    ~ sudo vi /etc/redis/redis.conf
    
    #注释bind
    #bind 127.0.0.1

    修改后,重启Redis服务器。

    ~ sudo /etc/init.d/redis-server restart
    Stopping redis-server: redis-server.
    Starting redis-server: redis-server.

    未使用密码登陆Redis服务器

    ~ redis-cli
    
    redis 127.0.0.1:6379> keys *
    (error) ERR operation not permitted

    发现可以登陆,但无法执行命令了。

    登陆Redis服务器,输入密码

    ~  redis-cli -a redisredis
    
    redis 127.0.0.1:6379> keys *
    1) "key2"
    2) "key3"
    3) "key4"

    登陆后,一切正常。

    我们检查Redis的网络监听端口

    检查Redis服务器占用端口

    ~ netstat -nlt|grep 6379
    tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN

    我们看到从之间的网络监听从 127.0.0.1:3306 变成 0 0.0.0.0:3306,表示Redis已经允许远程登陆访问。

    我们在远程的另一台Linux访问Redis服务器

    ~ redis-cli -a redisredis -h 192.168.1.199
    
    redis 192.168.1.199:6379> keys *
    1) "key2"
    2) "key3"
    3) "key4"


    连接redis,加上decode_responses=True,写入的键值对中的value为str类型,不加这个参数写入的则为字节类型。

    import redis   # 导入redis模块,通过python操作redis 也可以直接在redis主机的服务端操作缓存数据库
    
    r = redis.Redis(host='localhost', port=6379, decode_responses=True)   # host是redis主机,需要redis服务端和客户端都启动 redis默认端口是6379
    r.set('name', 'junxi')  # key是"foo" value是"bar" 将键值对存入redis缓存
    print(r['name'])
    print(r.get('name'))  # 取出键name对应的值
    print(type(r.get('name')))
    
    2、连接池

    redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。
    可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池

    连接池

    import redis    # 导入redis模块,通过python操作redis 也可以直接在redis主机的服务端操作缓存数据库
    
    pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)   # host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
    r = redis.Redis(connection_pool=pool)
    r.set('gender', 'male')     # key是"gender" value是"male" 将键值对存入redis缓存
    print(r.get('gender'))      # gender 取出键male对应的值

    远程访问正常。通过上面的操作,我们就把Redis数据库服务器,在Linux Ubuntu中的系统安装完成。

  • 相关阅读:
    第二十九课 循环链表的实现
    第二十八课 再论智能指针(下)
    第二十七课 再论智能指针(上)
    第二十六课 典型问题分析(Bugfix)
    普通new和placement new的重载
    leetcode 581. Shortest Unsorted Continuous Subarray
    leetcode 605. Can Place Flowers
    leetcode 219. Contains Duplicate II
    leetcode 283. Move Zeroes
    leetcode 217. Contains Duplicate
  • 原文地址:https://www.cnblogs.com/qq_841161825/p/8807898.html
Copyright © 2011-2022 走看看