zoukankan      html  css  js  c++  java
  • Redis基础认识及常用命令使用(一)--转载

    Redis简介

    redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

    Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。 --摘自360百科

    简而言之redis是属于非关系型数据库,存储结构是:key-value,内存-磁盘的存储方式。

    Redis的应用场景

    1.数据缓存

    2.session共享(会话保持)

    3.作为计数器

    4.消息队列

    5.最新列表

    Redis的持久化

    redis持久化会在磁盘上依赖两个文件

    数据文件:rdb

    日志文件:aof

    redis实现持久化两种机制

    RDB:周期的将内存中的数据备份到磁盘

    AOF:借助于一个日志文件,这个文件会记录每次操作

    Redis中的数据类型

    字符类型

    列表类型

    有序集合类型

    无序集合类型

    哈希表类型

    这部分内容大家也可以参考网站 http://redisdoc.com/

    Redis的安装

    直接使用yum即可进行安装

    [root@ken ~]# yum install redis -y

     使用yum安装的redis版本是3.2的

    [root@ken ~]# rpm -q redis
    redis-3.2.12-1.el7.x86_64

    如果你想下载安装最新版本或者更高的版本可以在redis官网站https://redis.io进行下载

    Redis命令使用

    首先启动redis。redis监听的是本机的6379端口,可以在配置文件中进行修改

    复制代码
    [root@ken ~]# systemctl restart redis
    [root@ken ~]# ss -tnl    
    State      Recv-Q Send-Q                   Local Address:Port                                  Peer Address:Port              
    LISTEN     0      128                                  *:10050                                            *:*                  
    LISTEN     0      128                          127.0.0.1:6379                                             *:*                  
    LISTEN     0      128                                  *:111                                              *:*                  
    LISTEN     0      128                                  *:22                                               *:*                  
    LISTEN     0      128                                 :::10050                                           :::*                  
    LISTEN     0      128                                 :::111                                             :::*                  
    LISTEN     0      128                                 :::80                                              :::*                  
    LISTEN     0      128                                 :::22                                              :::*     
    复制代码

    登录redis使用命令redis-cli

    [root@ken ~]# redis-cli
    127.0.0.1:6379> 

    在上面已经介绍了几种redis的数据类型,下面一一进行示范演示

    字符类型

    常用操作

    1. set key value     #将字符串值 value 关联到 key 

    127.0.0.1:6379> set age 10
    OK

    2. get key             #返回 key 所关联的字符串值。

    127.0.0.1:6379> get age
    "10"

    3. APPEND key value    #将 value 追加到 key 原来的值的末尾

    127.0.0.1:6379> append age ken
    (integer) 5
    127.0.0.1:6379> get age
    "10ken"

    4. MSET key value [key value ...]    #同时设置一个或多个 key-value 对

    127.0.0.1:6379> mset addr jiangsu tel 123 gender male
    OK

    5. MGET key [key ...]   #返回所有(一个或多个)给定 key 的值

    127.0.0.1:6379> mset addr jiangsu tel 123 gender male
    OK
    127.0.0.1:6379> MGET addr tel gender
    1) "jiangsu"
    2) "123"
    3) "male"

    6. INCR key  #将 key 中储存的数字值增一

    复制代码
    127.0.0.1:6379> set num 1
    OK
    127.0.0.1:6379> INCR num
    (integer) 2
    127.0.0.1:6379> INCR num
    (integer) 3
    127.0.0.1:6379> INCR num
    (integer) 4
    127.0.0.1:6379> INCR num
    (integer) 5
    127.0.0.1:6379> get num
    "5"
    复制代码

    7. DECR key   #将 key 中储存的数字值减一

    复制代码
    127.0.0.1:6379> DECR num
    (integer) 4
    127.0.0.1:6379> DECR num
    (integer) 3
    127.0.0.1:6379> DECR num
    (integer) 2
    127.0.0.1:6379> get num
    "2"
    复制代码

    8. STRLEN key  #返回 key 所储存的字符串值的长度

    复制代码
    127.0.0.1:6379> STRLEN tel
    (integer) 3
    127.0.0.1:6379> get tel
    "123"
    127.0.0.1:6379> STRLEN num
    (integer) 1
    127.0.0.1:6379> get num
    "2"
    复制代码

    9. DEL key [key ...]  #删除给定的一个或多个 key

    复制代码
    127.0.0.1:6379> DEL age num
    (integer) 2
    127.0.0.1:6379> keys *
    1) "gender"
    2) "addr"
    3) "name"
    4) "tel"
    复制代码

    哈希表类型

    常用操作

    1.HSET key field value  #将哈希表 key 中的域 field 的值设为 value 

    127.0.0.1:6379> hset myha ken 123
    (integer) 1

    2.HGET key field返回哈希表 key 中给定域 field 的值

    127.0.0.1:6379> hset myha ken 123
    (integer) 1
    127.0.0.1:6379> HGET myha ken
    "123"

    3. HGETALL key  #返回哈希表 key 中,所有的域和值

    127.0.0.1:6379> HGETALL myha
    1) "ken"
    2) "123"

    列表类型

    常用操作

    1.LPUSH key value [value ...]  #将一个或多个值 value 插入到列表 key 的表头

    127.0.0.1:6379> lpush ken 1 2 3 4
    (integer) 4

    2.RPUSH key value [value ...] #将一个或多个值 value 插入到列表 key 的表尾(最右边)

    127.0.0.1:6379> RPUSH ken 7 8 9
    (integer) 7

    3.LRANGE key start stop  #返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定

    复制代码
    127.0.0.1:6379> LRANGE ken 0 10
    1) "4"
    2) "3"
    3) "2"
    4) "1"
    5) "7"
    6) "8"
    7) "9"
    复制代码

    4. RPOP key  #移除并返回列表 key 的尾元素

    复制代码
    127.0.0.1:6379> RPOP ken
    "9"
    127.0.0.1:6379> LRANGE ken 0 10
    1) "4"
    2) "3"
    3) "2"
    4) "1"
    5) "7"
    6) "8"
    127.0.0.1:6379> RPOP ken
    "8"
    127.0.0.1:6379> LRANGE ken 0 10
    1) "4"
    2) "3"
    3) "2"
    4) "1"
    5) "7"
    复制代码

    5. LLEN key #返回列表 key 的长度

    127.0.0.1:6379> LLEN ken
    (integer) 5

    6. LREM key count value  #根据参数 count 的值,移除列表中与参数 value 相等的元素

    复制代码
    127.0.0.1:6379> LREM ken 2 3
    (integer) 1
    127.0.0.1:6379> LRANGE ken 0 10
    1) "4"
    2) "2"
    3) "1"
    4) "7"
    127.0.0.1:6379> LREM ken 2 2
    (integer) 1
    127.0.0.1:6379> LRANGE ken 0 10
    1) "4"
    2) "1"
    3) "7"
    复制代码

    无序集合

    常用操作

    1.SADD key member [member ...]  #将一个或多个 member 元素加入到集合 key 当中

    127.0.0.1:6379> SADD kenken 1 2 3 
    (integer) 3

    2.SMEMBERS key  #返回集合 key 中的所有成员

    127.0.0.1:6379> SMEMBERS kenken
    1) "1"
    2) "2"
    3) "3"

    3.SCARD key #返回集合 key 的基数(集合中元素的数量)

    127.0.0.1:6379> SCARD kenken
    (integer) 3

    4.SREM key member [member ...]  #移除集合 key 中的一个或多个 member 元素

    127.0.0.1:6379> SREM kenken 3
    (integer) 1
    127.0.0.1:6379> SMEMBERS kenken
    1) "1"
    2) "2"

     

    有序集合

    常用操作

    1. ZADD key score member [[score member] [score member] ...]  #将一个或多个 member 元素及其 score 值加入到有序集 key 当中

    127.0.0.1:6379> ZADD ke 9 baidu
    (integer) 1

    2.ZRANGE key start stop [WITHSCORES] #返回有序集 key 中,指定区间内的成员

    127.0.0.1:6379> ZRANGE ke 0 9
    1) "baidu"

    3.ZREM key member [member ...] #移除有序集 key 中的一个或多个成员

    127.0.0.1:6379> ZREM ke baidu
    (integer) 1
    127.0.0.1:6379> ZRANGE ke 0 -9
    (empty list or set)
  • 相关阅读:
    rest framework 之前
    python之psutil
    可持久化并查集总结
    复数学习
    主席树总结
    点分治题单(来自XZY)
    Tarjan&2-SAT 总结
    AC自动机题单
    网络流题目详讲+题单(入门版)(持续更新中......)
    网络流题目详讲+题单(提高版)(持续更新中......)
  • 原文地址:https://www.cnblogs.com/xiaxiaomo/p/9962473.html
Copyright © 2011-2022 走看看