四、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
    
posted @ 2020-02-16 22:28  巫小诗  阅读(216)  评论(0编辑  收藏  举报