zoukankan      html  css  js  c++  java
  • Redis服务搭建与基础功能示例

    一、Redis简介

      Redis是一个非关系型远程内存数据库,它也是一个Key-value模型的数据库。Redis支持5种数据类型(string、list、set、sorted set、hash),可以将各式各样的问题很自然的映射到这些数据结构上。虽然Redis是一个内存数据库,但可通过自身的复制、持久化等特性,很方便的将数据存储到磁盘,并且Redis有着每秒上百万次的请求处理能力。

      Redis可用作数据库(Database)、缓存(Cache)和消息代理(Message Broker)。Redis还自带复制、事务、主从复制、Lua脚本、存储项淘汰、高可用Redis Sentinel、Redis Cluster等功能。

    二、Redis安装

      Redis现在最新版已经升级到了5.0,epel版本为Redis3.0。这里介绍yum安装Redis:

    1.yum安装:

    ~]# yum install -y redis
     1 /etc/logrotate.d/redis #
     2 /etc/redis-sentinel.conf #哨兵服务配置文件
     3 /etc/redis.conf #主程序配置文件
     4 /etc/systemd/system/redis-sentinel.service.d
     5 /etc/systemd/system/redis-sentinel.service.d/limit.conf
     6 /etc/systemd/system/redis.service.d
     7 /etc/systemd/system/redis.service.d/limit.conf
     8 /usr/bin/redis-benchmark #评估程序
     9 /usr/bin/redis-check-aof
    10 /usr/bin/redis-check-rdb
    11 /usr/bin/redis-cli #Redis客户端程序
    12 /usr/bin/redis-sentinel #Redis哨兵服务程序
    13 /usr/bin/redis-server #Redis主程序
    14 /usr/lib/systemd/system/redis-sentinel.service #CentOS7上的哨兵服务管理程序
    15 /usr/lib/systemd/system/redis.service ##CentOS7上的主程序管理程序
    16 /usr/libexec/redis-shutdown
    17 /usr/share/doc/redis-3.2.12
    18 /usr/share/doc/redis-3.2.12/00-RELEASENOTES
    19 /usr/share/doc/redis-3.2.12/BUGS
    20 /usr/share/doc/redis-3.2.12/CONTRIBUTING
    21 /usr/share/doc/redis-3.2.12/MANIFESTO
    22 /usr/share/doc/redis-3.2.12/README.md
    23 /usr/share/licenses/redis-3.2.12
    24 /usr/share/licenses/redis-3.2.12/COPYING
    25 /usr/share/man/man1/redis-benchmark.1.gz
    26 /usr/share/man/man1/redis-check-aof.1.gz
    27 /usr/share/man/man1/redis-check-rdb.1.gz
    28 /usr/share/man/man1/redis-cli.1.gz
    29 /usr/share/man/man1/redis-sentinel.1.gz
    30 /usr/share/man/man1/redis-server.1.gz
    31 /usr/share/man/man5/redis-sentinel.conf.5.gz
    32 /usr/share/man/man5/redis.conf.5.gz
    33 /var/lib/redis #默认数据目录
    34 /var/log/redis #默认日志目录
    35 /var/run/redis

    2.启动Redis

    ~]# systemctl start redis
    ~]# ss -lnt #查看监听端口状态,Redis默认监听端口为6379

    在没有配置认证的情况下,可以直接登入Redis:

    ~]# redis-cli
    127.0.0.1:6379>

    可用 redis-cli -h 获取相关参数选项及功能,常用参数如下:

    1 -h <hostname>:Redis服务端的地址
    2 -p <port>:指定连接的端口,默认为6379
    3 -s <socket>:若不是通过IP+端口则可使用指定socket登录
    4 -a <password>:连接Redis的密码,Redis的认证设置只有用户名没有密码。Redis用户名默认就一个,没有权限分级的概念。

    连接至Redis后可用 SELECT 选择数据库:

    6379:> SELECT 0 #Redis默认用数字来代表库。
    OK

    3.Redis种5值的类型的基本使用介绍

      Redis是Key-value类型,它所有的数据都是键值类型,但值的类型有5种:

    1.String

      常用指令:

    1 SET <key> <value> #将key的值设置为value,value可以是数值。还可以设置数据的有效期限,过期时间。
    2 GET <key> #获取key的数据
    3 APPEND <key> <value> #追加数据
    4 DECR <key> #键值加1
    5 DECRBY #键值加指定数值
    6 INCR <key> #键值减1
    7 INCR <key> #键值减指定数值
    8 MSET <key> <value> #一次创建多个键值
    9 MGET <key> #一次查看多个键值

    例:

     1 127.0.0.1:6379> SET name tom
     2 OK
     3 127.0.0.1:6379> GET name
     4 "tom"
     5 127.0.0.1:6379> APPEND name jerry
     6 (integer) 8
     7 127.0.0.1:6379> GET name
     8 "tomjerry"
     9 127.0.0.1:6379> SET count 0
    10 OK
    11 127.0.0.1:6379> INCR count
    12 (integer) 1
    13 127.0.0.1:6379> GET count
    14 "1"
    15 127.0.0.1:6379> INCR count
    16 (integer) 2
    17 127.0.0.1:6379> GET count
    18 "2"
    19 127.0.0.1:6379> INCRBY count 5
    20 (integer) 7
    21 127.0.0.1:6379> GET count
    22 "7"
    23 127.0.0.1:6379>

    2.List

      LIst可以理解为一个队列,如图:

      常用指令:

     1 LSET <key> <index> <value> #根据索引设定值
     2 RPUSH <key> <value> #从右侧增加值
     3 LPUSH <key> <value> #从左侧增加值
     4 RPOP <key> #从右侧弹出(删除)值,只能是首尾
     5 LPOP <key> #从左侧弹出(删除)值,只能是首尾
     6 RPUSHX <key> <value> #从右侧增加值,列表必须存在
     7 LPUSHX <key> <value> #从左侧增加值,列表必须存在
     8 LREM #删除指定值
     9 LINDEX <key> <index> #从索引中获得一个元素
    10 LLEN <key> #查看Key有多少个元素

    例:

     1 127.0.0.1:6379> LPUSH weekdays Mon Tue
     2 (integer) 2
     3 127.0.0.1:6379> LINDEX weekdays 0
     4 "Tue"
     5 127.0.0.1:6379> LINDEX weekdays 1
     6 "Mon"
     7 127.0.0.1:6379> RPUSH weekdays Wed Thu
     8 (integer) 4
     9 127.0.0.1:6379> LINDEX weekdays 2
    10 "Wed"
    11 127.0.0.1:6379> LINDEX weekdays 3
    12 "Thu"
    13 127.0.0.1:6379> LPOP weekdays
    14 "Tue"
    15 127.0.0.1:6379> RPOP weekdays
    16 "Thu"
    17 127.0.0.1:6379> LINSERT weekdays BEFORE Wed Fri
    18 (integer) 3
    19 127.0.0.1:6379> LINDEX weekdays 1
    20 "Fri"

    3.Hash

    1 HSET <key> <field> <value> :设定键和值还有下标
    2 HMSET <key> <field> <value>:设定多个键和值还有下标
    3 HGET <key> <field>:查看键的下标
    4 HMGET <key> <field>:查看多个键的下标
    5 HKEYS <key>:显示所有定义的key
    6 HVALS <key>:显示所有的value
    7 HDEL <key> <field>:删除指定键的下标
    8 HGETALL <key>:显示所有

    例:

     1 127.0.0.1:6379> HSET stu1 name tom
     2 (integer) 1
     3 127.0.0.1:6379> HSET stu1 age 25
     4 (integer) 1
     5 127.0.0.1:6379> HMSET stu1 gender Male major Computer
     6 OK
     7 127.0.0.1:6379> HKEYS stu1
     8 1) "name"
     9 2) "age"
    10 3) "gender"
    11 4) "major"
    12 127.0.0.1:6379> HVALS stu1
    13 1) "tom"
    14 2) "25"
    15 3) "Male"
    16 4) "Computer"

    4.Set

      无序集合数据类型,主要用来求交差并补集的

    例:

     1 127.0.0.1:6379> SADD tom jack hermes tony
     2 (integer) 3
     3 127.0.0.1:6379> SADD jerry tony trump real
     4 (integer) 3
     5 127.0.0.1:6379> SINTER tom jerry
     6 1) "tony"
     7 127.0.0.1:6379> SUNION tom jerry
     8 1) "hermes"
     9 2) "jack"
    10 3) "tony"
    11 4) "real"
    12 5) "trump"
    13 127.0.0.1:6379> SDIFF jerry tom
    14 1) "trump"
    15 2) "real"
    16 127.0.0.1:6379> SDIFF tom jerry
    17 1) "hermes"
    18 2) "jack"
    19 127.0.0.1:6379> SPOP jerry
    20 "trump"
    21 127.0.0.1:6379> SMEMBERS tom
    22 1) "tony"
    23 2) "hermes"
    24 3) "jack"

    5.Sorted-set

      与Set类型相似,但Sort-set属于有序集合。

    例:

     1 127.0.0.1:6379> ZADD colors 1 red 2 blue 3 yellow 8 green 6 gray
     2 (integer) 5
     3 127.0.0.1:6379> ZCARD colors
     4 (integer) 5
     5 127.0.0.1:6379> ZSCORE colors red
     6 "1"
     7 127.0.0.1:6379> ZRANGE colors 0 6
     8 1) "red"
     9 2) "blue"
    10 3) "yellow"
    11 4) "gray"
    12 5) "green"

    4.订阅

      常用指令:

    1 PSUBSCRIBE <pattern>:订阅指定频道的指定内容
    2 PUBLISH <channel> <message>:生成频道并往频道中生产信息
    3 PUNSUBSCRIBE <pattern>:取消订阅指定频道的指定内容
    4 SUBSCRIBE <channel>:订阅整个频道
    5 UNSUBSCRIBE <channel>:取消订阅整个频道

    例:

  • 相关阅读:
    Deep Learning--分布式训练RBM算法框架
    Deep Learning基础理论--Classification RBM
    docker run hangs问题排查记录
    启用k8s metrics server监控
    Infiniband 网络性能测试
    foreman容器化部署
    通过keepalived实现多主集群方案
    工程优化暨babel升级小记
    一次由webview报错引起的追根溯源
    前端基础3:js篇(基础及算法)
  • 原文地址:https://www.cnblogs.com/readygood/p/9883970.html
Copyright © 2011-2022 走看看