zoukankan      html  css  js  c++  java
  • 四、redis常用指令

    一、准备工作

    1. 指令大全 https://redis.io/commands

    2. 服务端启动

      指令 ./redis-server

    3. 服务端完整启动指令

      指令 ./redis-server path/to/redis.conf

    4. 服务端关闭

      指令 pkill -9 redis

    5. 客户端启动

      指令 ./redis-cli

    6. 检测redis服务是否启动

      指令 ping 返回 PONG 则服务可用

      127.0.0.1:6379> ping
      PONG
      
    7. 客户端完整启动指令 redis-cli -h host -p port -a password

    8. 选择数据库(0-15)

      127.0.0.1:6379> select 8
      OK
      127.0.0.1:6379[8]> 
      
    9. 获取所有的key_name 指令 keys *

    二、字符串

    1. 设置指定的key_name

      指令 set key_name value

      127.0.0.1:6379[8]> set name fuqiang
      OK
      
    2. 获取指定的key_name

      指令 get key_name

      127.0.0.1:6379[8]> get name
      "fuqiang"
      
    3. 设置指定的key_name 并设置过期时间 ex(秒) px(毫秒)

      指令 set key_name value expression[ex second | px milli second]

      127.0.0.1:6379[8]> set name 20 px 3000
      OK
      127.0.0.1:6379[8]> set name 20 ex 3
      OK
      
    4. 返回指定key_name的值自增1

      指令 incr key_name

      127.0.0.1:6379[8]> set age 20
      OK
      127.0.0.1:6379[8]> incr age
      (integer) 21
      
    5. 返回指定key_name的值自减1

      指令 decr key_name

      127.0.0.1:6379[8]> get age
      "21"
      127.0.0.1:6379[8]> decr age
      (integer) 20
      
    6. 返回指定key_name的值的长度

      指令 strlen key_name

      127.0.0.1:6379[8]> strlen name
      (integer) 7
      
    7. 返回字符串的子串的值(包括首尾)

      指令 getrange key_name start stop

      127.0.0.1:6379[8]> getrange name 0 2
      "fuq"
      
    8. 若指定的key_name不存在时,为key_name设置指定的值。设置成功返回1,设置失败返回0

      指令 setnx key_name value

      127.0.0.1:6379[8]> setnx name fu
      (integer) 0
      127.0.0.1:6379[8]> setnx address beijing
      (integer) 1
      

    三、列表

    1. 设置指定的key_name 的值

      指令 lpush key_name value 从左侧依次添加,第一个添加的元素是整个列表的最后一个元素

      指令 rpush key_name value 从右侧依次添加,第一个添加的元素是整个列表的第一个元素

      127.0.0.1:6379[8]> lpush course python andriod java h5
      (integer) 4
      127.0.0.1:6379[8]>
      
    2. 获取列表长度

      指令 llen key_name

      127.0.0.1:6379[8]> llen course
      (integer) 4
      
    3. 获取指定的key_name的区间值,下标的取值范围是在0到长度减1

      指令 lrange key_name start stop

      127.0.0.1:6379[8]> lrange course 0 3
      1) "h5"
      2) "java"
      3) "andriod"
      4) "python"
      
    4. 删除列表中的首尾数据

      lpop key_name 从左侧删除第一个元素

      rpop key_name 从右侧删除第一个元素

      127.0.0.1:6379[8]> lpop course 
      "h6"
      127.0.0.1:6379[8]> rpop course
      "python"
      
    5. 删除列表中指定的数据

      指令 lrem key_name count value

      如果 count为正值,则从count开始,自左向右找到value,删除。

      如果 count为负值,则从count开始,自右向左找到value,删除。

      count 的取值范围 - llen key-10llen key -1

      127.0.0.1:6379[8]> lrange course 0 4
      1) "h5"
      2) "java"
      3) "andriod"
      4) "python"
      5) "java"
      127.0.0.1:6379[8]> lrem course -1 java
      (integer) 1
      127.0.0.1:6379[8]> lrange course 0 3
      1) "h5"
      2) "java"
      3) "andriod"
      4) "python"
      

    四、哈希

    1. 设置指定的key 如果field存在,则覆盖其原值。

      指令 hmset key_name filed_name value [field1 value1 ...]

      127.0.0.1:6379[8]> hmset cart_1 yagao 1 xiangzao 2 
      OK
      127.0.0.1:6379[8]> hmset cart_2 yashua 1 yatong 1  jingzi 1
      OK
      
    2. 获取指定的key 所有的键值信息

      指令 hgetall key_name

      127.0.0.1:6379[8]> hgetall cart_1
      1) "yagao"
      2) "20"
      3) "xiangzao"
      4) "2"
      127.0.0.1:6379[8]>
      
    3. 获取指定的 key_name所有的 filed字段

      指令 hkeys key_name

      127.0.0.1:6379[8]> hkeys cart_1
      1) "yagao"
      2) "xiangzao"
      127.0.0.1:6379[8]> hkeys cart_2
      1) "yashua"
      2) "yatong"
      3) "jingzi"
      
    4. 获取指定的 key_name所有的 value

      指令 hvals key_name

      127.0.0.1:6379[8]> hvals cart_1
      1) "1"
      2) "2"
      127.0.0.1:6379[8]> hvals cart_2
      1) "1"
      2) "1"
      3) "1"
      
    5. 获取指定的keyfield 的值

      指令 hget key_name field_name

      127.0.0.1:6379[8]> hget cart_1 yagao
      "1"
      
    6. 获取指定的key_name 所有字段的个数

      指令 hlen key_name

      127.0.0.1:6379[8]> hlen cart_1
      (integer) 2
      127.0.0.1:6379[8]> hlen cart_2
      (integer) 3
      127.0.0.1:6379[8]>
      
    7. 设置指定的key_name 如果field不存在,设置成功。否则,设置失败。

      指令 hsetnx key_name field_name value

      127.0.0.1:6379[8]> hsetnx cart_1 yagao 50
      (integer) 0
      127.0.0.1:6379[8]>
      
    8. 删除指定的字段

      指令 hdel key_name field_name

      127.0.0.1:6379[8]> hdel cart_1 yagao
      (integer) 1
      127.0.0.1:6379[8]> hkeys cart_1
      1) "xiangzao"
      
    9. 判断指定 key_name 下的字段是否存在,若存在,返回1,否则,返回0

      指令 hexists key_name filed_name

      127.0.0.1:6379[8]> hexists cart_1 yagao
      (integer) 0
      127.0.0.1:6379[8]> hexists cart_1 xiangzao
      (integer) 1
      

    五、集合

    1. 添加指定key_name值,如添加的元素存在,则不添加。

      指令 sadd key_name value [value1 value2 ..]

      127.0.0.1:6379[8]> sadd course mongo redis memcache
      (integer) 3
      
    2. 获取指定的 key_name 的所有元素

      指令 smembers key_name

      127.0.0.1:6379[8]> smembers course
      1) "redis"
      2) "mongo"
      3) "memcache"
      
    3. 获取集合长度

      指令 scard key_name

      127.0.0.1:6379[8]> scard course
      (integer) 3
      
    4. 删除指定 key_name 的元素

      指令 hpop key_name [count] count 是删除的个数

      127.0.0.1:6379[8]> spop course
      "memcache"
      127.0.0.1:6379[8]> spop course 2
      1) "redis"
      2) "mongo"
      127.0.0.1:6379[8]> smembers course
      (empty list or set)
      
    5. 判断一个元素是否属于key_name 集合

      指令 sismember key_name value

      127.0.0.1:6379[8]> sismember course python
      (integer) 0
      127.0.0.1:6379[8]> sismember course memcache
      (integer) 1
      

    六、有序集合

    1. 添加 key_name 集合元素

      指令 zadd key_name score member [score1 member1 ...]

      127.0.0.1:6379[8]> zadd course 1 python
      (integer) 1
      127.0.0.1:6379[8]> zadd course 2 java
      (integer) 1
      127.0.0.1:6379[8]> zadd course 2 java 3 h5
      (integer) 1
      
    2. 获取有序集合的长度

      指令 zcard key_name

      127.0.0.1:6379[8]> zcard course
      (integer) 3
      
    3. 获取有序集合的元素

      指令 zrange key_name start stop

      127.0.0.1:6379[8]> zrange course 0 2
      1) "python"
      2) "h5"
      3) "java"
      
    4. 获取指定元素的索引

      指令 zrank key_name memeber

      127.0.0.1:6379[8]> zrank course h5
      (integer) 1
      
    5. 删除指定的元素

      指令 zrem key_name member

      127.0.0.1:6379[8]> zrem course java
      (integer) 1
      
    6. 获取成员的分值

      指令 zscore key_name member

      127.0.0.1:6379[8]> zscore course h5
      "3"
      
    7. 获取 key_name在指定分值之间的个数

      指令 zcount key_name min max

      127.0.0.1:6379[8]> zcount course 0 10
      (integer) 2
      
  • 相关阅读:
    管理中的“变”与“不变”
    软件项目需求分析与管理的十大疑问
    小商家也要有O2O思维
    互联网时代CIO生存法则
    浅谈项目经理与部门经理之间的关系
    沃尔玛:“最后一公里”的致命伤
    大数据分析案例:永远别忘记天气这个变量
    IT项目中的6类知识转移
    C
    linu入门
  • 原文地址:https://www.cnblogs.com/wuxiaoshi/p/12319167.html
Copyright © 2011-2022 走看看