美文网首页
Redis 基础命令

Redis 基础命令

作者: 违规昵称不予展示 | 来源:发表于2019-03-07 18:44 被阅读0次

    手撸代码,如有错误请联系QQ:2567828851


    下载、安装、使用:

    想要windows版本的小伙伴可以到【这里】去下载

    1.linux版本直接用几条命令来下载,解压,和编译吧

    Sanqiushu:~$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz
    Sanqiushu:~$ tar xzf redis-5.0.3.tar.gz
    Sanqiushu:~$ cd redis-5.0.3
    Sanqiushu:~/redis-5.0.3$ make
    

    2.编译完成后进入src目录使用启动服务端

    Sanqiushu:~/redis-5.0.3$ cd src
    Sanqiushu:~/redis-5.0.3/src$ ./redis-server
    

    windows端的可以在cmd中输入 redis-server 来启动服务端(如果安装的时候没有点加入环境变量的话可以进入安装目录下的src目录按Shift+鼠标右键选择打开PowerShell或cmd然后执行命令)

    3.进入相应目录打开客户端连接

    Sanqiushu:~$ cd redis-5.0.3/
    Sanqiushu:~/redis-5.0.3$ ./src/redis-cli
    127.0.0.1:6379>
    

    String类型对应操作

    set -- 设置一个键对应的值(键不存在会被创建)

    用法:
    set key value [expiration EX seconds|PX milliseconds] [NX|XX]
    EX 是指暂存时间(秒)
    例如:
    127.0.0.1:6379> set animal 'Cat'
    OK
    

    get -- 得到一个键对应的值

    用法:
    get key
    例如:
    127.0.0.1:6379> get animal
    "Cat"
    

    append -- 为一个键对应的值进行拼接

    用法:
    append key value
    例子:
    127.0.0.1:6379> append animal ' Dog'
    (integer) 7
    127.0.0.1:6379> get animal
    "Cat Dog"
    127.0.0.1:6379>
    

    mset -- 设置多个键的值(键不存在会被创建)

    用法:
    mset key value [key value ...]
    例子:
    127.0.0.1:6379> mset user1 'xiaoming' user2 'lilei'
    OK
    127.0.0.1:6379>
    

    mget -- 获取键对应的值

    用法:
    mget key [key ...]
    例子:
    127.0.0.1:6379> mget user1 user2 animal
    1) "xiaoming"
    2) "lilei"
    3) "Cat Dog"
    127.0.0.1:6379>
    

    del -- 删除一个键值对

    用法:
    del key [key ...]
    例子:
    127.0.0.1:6379> del user2
    (integer) 1
    127.0.0.1:6379>
    

    incr、decr 自增 、自减

    用法:
    incr key
    decr key
    例子:
    127.0.0.1:6379> set num 8
    OK
    127.0.0.1:6379> incr num
    (integer) 9
    127.0.0.1:6379> decr num
    (integer) 8
    127.0.0.1:6379>
    

    List对应操作

    lpush -- 从左插入一个数据(从队列头部插入一个数据)

    用法:
    lpush key value [value ...]
    例子:
    127.0.0.1:6379> lpush q1 'Jhon' 'Cat' 'Amy'
    (integer) 3
    

    rpush -- 从右插入一个数据(从队列尾部插入一个数据)

    用法:
    rpush key value [value ...]
    例子:
    127.0.0.1:6379> rpush q1 'Bob'
    (integer) 4
    

    llen -- 查看队列长度

    用法:
    llen key
    例子:
    127.0.0.1:6379> llen q1
    (integer) 4
    127.0.0.1:6379>
    

    lrange -- 查看队列内容

    用法:
    lrange key start stop
    例子:
    127.0.0.1:6379> lrange q1 0 -1
    1) "Amy"
    2) "Cat"
    3) "Jhon"
    4) "Bob"
    

    与python类似-1代表倒数第一位,也就是最后一个

    lpushx -- 向存在的列表中左插入一个值(插入不存在的列表时不做任何操作)

    用法:
    lpushx key value
    例子:
    127.0.0.1:6379> lpushx q1 'zhang'
    (integer) 5
    127.0.0.1:6379> lrange q1 0 -1
    1) "zhang"
    2) "Amy"
    3) "Cat"
    4) "Jhon"
    5) "Bob"
    127.0.0.1:6379> lpushx q2 'zhang'
    (integer) 0
    127.0.0.1:6379>
    

    rpushx -- 向存在的列表中右插入一个值(插入不存在的列表时不做任何操作)

    ltrim -- 左截取一定长度的列表(剩下的删除)

    用法:
    ltrim key start stop
    例子:
    127.0.0.1:6379> ltrim  q1 0 2
    OK
    127.0.0.1:6379> lrange q1 0 -1
    1) "zhang"
    2) "Amy"
    3) "Cat"
    127.0.0.1:6379>
    

    lpop -- 左删除列表中的一个值

    用法:
     lpop key
    例子:
    127.0.0.1:6379> lpop q1
    "zhang"
    127.0.0.1:6379> lrange q1 0 -1
    1) "Amy"
    2) "Cat"
    127.0.0.1:6379>
    

    rpop -- 右删除列表中的一个值


    Set类型相关操作

    sadd -- 向集合中加入元素

    用法:
    sadd key member [member ...]
    例子:
    127.0.0.1:6379> sadd zoo Cat Dog
    (integer) 2
    127.0.0.1:6379>
    

    这里的Cat 和 Dog 可以不加引号

    smembers -- 查看集合中的元素

    用法:
     smembers key
    例子:
    127.0.0.1:6379> smembers zoo
    1) "Dog"
    2) "Cat"
    127.0.0.1:6379>
    

    srem -- 从集合中移除元素

    用法:
    srem key member [member ...]
    例子:
    127.0.0.1:6379> srem zoo Cat
    (integer) 1
    127.0.0.1:6379>
    

    sismember -- 查看某个值是否在某个集合中

    用法:
    sismember key member
    例子:
    127.0.0.1:6379> sismember zoo Dog
    (integer) 1
    127.0.0.1:6379> sismember zoo Cat
    (integer) 0
    127.0.0.1:6379>
    

    1 代表存在,0 代表不存在

    sdiff -- 比较集合间的不同(以第一个集合为基准)

    用法:
    sdiff key [key ...]
    例子:
    127.0.0.1:6379> smembers zoo
    1) "Dog"
    2) "Cat"
    127.0.0.1:6379> smembers zoo1
    1) "Cow"
    2) "Cat"
    127.0.0.1:6379> sdiff zoo zoo1
    1) "Dog"
    127.0.0.1:6379>
    

    先查看zoo 、zoo1里有什么,再比较一下不同

    sinter -- 计算集合的交集

    用法:
    sinter key [key ...]
    例子:
    127.0.0.1:6379> sinter zoo zoo1
    1) "Cat"
    127.0.0.1:6379>
    

    sunion -- 计算集合的并集

    用法:
    sunion key [key ...]
    例子:
    127.0.0.1:6379> sunion zoo zoo1
    1) "Cow"
    2) "Dog"
    3) "Cat"
    127.0.0.1:6379>
    

    Hash相关操作

    hset/hget -- 设置/获取散列值

    用法:
    hset key field value
    hget key field
    例子:
    127.0.0.1:6379> hset news:1 title 'News Title'
    (integer) 1
    127.0.0.1:6379> hset news:1 content 'News Content'
    (integer) 1
    127.0.0.1:6379> hget news:1 title
    "News Title"
    127.0.0.1:6379> hget news:1 content
    "News Content"
    

    这里(news:1)是一个整体,在这里作为key

    hmset/hmget -- 设置/获取多对散列值

    用法:
    hmset key field value [field value ...]
    hmget key field [field ...]
    例子:
    127.0.0.1:6379> hmset news:2 title 'Title2' content 'Content2' is_valid 1
    OK
    127.0.0.1:6379> hmget news:2 title content is_valid
    1) "Title2"
    2) "Content2"
    3) "1"
    127.0.0.1:6379>
    

    hsetnx -- 如果散列值已经存在,则不设置

    用法:
    hsetnx key field value
    例子:
    127.0.0.1:6379> hget news:2 is_valid
    "1"
    127.0.0.1:6379> hsetnx news:2 is_valid 2
    (integer) 0
    127.0.0.1:6379> hget news:2 is_valid
    "1"
    127.0.0.1:6379>
    

    hkeys/hvals -- 返回所有Keys/Values

    用法:
    hkeys key
    hvals key
    例子:
    127.0.0.1:6379> hkeys news:1
    1) "title"
    2) "content"
    127.0.0.1:6379>
    127.0.0.1:6379> hvals news:2
    1) "Title2"
    2) "Content2"
    3) "1"
    127.0.0.1:6379>
    

    hlen -- 返回散列包含域(field)的数量

    用法:
    hlen key
    例子:
    127.0.0.1:6379> hlen news:2
    (integer) 3
    127.0.0.1:6379>
    

    hdel -- 删除散列指定的域(field)

    用法:
    hdel key field [field ...]
    例子:
    127.0.0.1:6379> hdel news:2 is_valid
    (integer) 1
    127.0.0.1:6379>
    

    hexists --判断散列是否存在

    用法:
    hexists key field
    例子:
    127.0.0.1:6379> hexists news:2 is_valid
    (integer) 0
    127.0.0.1:6379>
    

    相关文章

      网友评论

          本文标题:Redis 基础命令

          本文链接:https://www.haomeiwen.com/subject/qenxpqtx.html