zoukankan      html  css  js  c++  java
  • Redis基础认识及常用命令使用(一)--技术流ken

    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)
  • 相关阅读:
    数据库:常用的类库、对应的方法和属性
    robotframe常用的类库、对应的方法和属性
    appium常用的类库、对应的方法和属性
    selenium常用的类库、对应的方法和属性
    Python常用的类库、对应的方法和属性
    Python MySQLdb中执行SQL语句传入的参数应该要加上引号如果该字段是str类型的
    接口测试,如何构建json类型的参数值
    使用pip install mysqlclient命令安装mysqlclient失败?(基于Python)
    如何切换虚拟机(centos6)和windows
    ZOJ
  • 原文地址:https://www.cnblogs.com/kenken2018/p/9959759.html
Copyright © 2011-2022 走看看