title: Redis的Strings、Lists经常使用操做指令
author: MegaSlark
date: 2019-10-02 12:52:17
summary: Redis的Strings和Lists经常使用操做指令合集。
categories: Redis
tags:redis
# GET 获取键值对 127.0.0.1:6379> get name (nil) # 设置失效时间的两种方式 # 设置键值对及过时时间 127.0.0.1:6379> setex name 10 enjoyitlife OK 127.0.0.1:6379> get name "enjoyitlife" # 等待10s后再次获取 127.0.0.1:6379> get name (nil) # 设置键值对及过时时间 127.0.0.1:6379> SET name enjoyitlife EX 10 OK #SETNX SET IF NOT EXIST 不存时在设置 127.0.0.1:6379> SETNX name "enjoyitlife" (integer) 1 ## 再次执行就不会设置了 由于Key已经存在了 127.0.0.1:6379> setnx name enjoyitlife (integer) 0 # 获取键值对 127.0.0.1:6379> get name "enjoyitlife" # 删除键值对 127.0.0.1:6379> del name (integer) 1
## MSET MGET 批量获取 127.0.0.1:6379> mset name enjoyitlife age 18 OK 127.0.0.1:6379> get name "enjoyitlife" 127.0.0.1:6379> get age "18" 127.0.0.1:6379> mget name age 1) "enjoyitlife" 2) "18"
# INCR INCRBY 自增 指定自增间隔 127.0.0.1:6379> set num 18 OK 127.0.0.1:6379> INCR num (integer) 19 127.0.0.1:6379> INCRBY num 6 (integer) 25 # INCRBYFLOAT 浮点类型相加 127.0.0.1:6379> INCRBYFLOAT num 3.05 "28.05"
127.0.0.1:6379> set num 18 OK 127.0.0.1:6379> DECR num (integer) 17 127.0.0.1:6379> DECRBY num 3 (integer) 14 127.0.0.1:6379> DECRBY num 3 (integer) 11
If
key
already exists and is a string, this command appends thevalue
at the end of the string. Ifkey
does not exist it is created and set as an empty string, so APPEND will be similar to SET in this special case.centos
若是key存在,append命令会在原值的末尾处追加指定的value,若是key不存在,则会新建一个空字符串,而且追加对应的value。app
# APPEND 字符串增长 若是字符串不存在,初始化后追加。 127.0.0.1:6379> get name "enjoyitlife" 127.0.0.1:6379> APPEND name 2019 (integer) 15 127.0.0.1:6379> get name "enjoyitlife2019" 127.0.0.1:6379> append name1 2019 (integer) 4
SETRANGE:改变原来的字符串 从指定下标开始替换相应的值。若是key存在,则直接替换,若是key不存在,且offset大于0,会用\x00补全。this
## setrange key不存在 127.0.0.1:6379> del name (integer) 1 127.0.0.1:6379> get name (nil) 127.0.0.1:6379> SETRANGE name 2 2019 (integer) 6 127.0.0.1:6379> get name "\x00\x002019" 127.0.0.1:6379> set name enjoy OK # setrange key存在 127.0.0.1:6379> SETRANGE name 0 2019 (integer) 5 127.0.0.1:6379> get name "2019y"
GETRANGE []取值,不改变原来的字符串。centos7
127.0.0.1:6379> get name "2019y" 127.0.0.1:6379> GETRANGE name 0 1 "20" 127.0.0.1:6379> get name "2019y"
## STRLEN 返回对应value的长度 127.0.0.1:6379> STRLEN name (integer) 11
# 将全部指定的值插入到存储在键上的列表的头部,能够一次写入多个值,值是依次写入队列头部。 127.0.0.1:6379> lpush datalist AA AB AC (integer) 3 # LPUSHX 只有在键已存在并保存列表的状况下,才将指定的值插入存储在键的列表头部。 与 LPUSH 相反,当键不存在时将不执行任何操做 127.0.0.1:6379> LPUSHX datalist AF (integer) 4 # datalist2 没有值 因此不会有任何操做。 127.0.0.1:6379> LPUSHX datalist2 AF (integer) 0 # LPOP 弹出头部元素 127.0.0.1:6379> lpop datalist "AF"
# RPUSH 新增队列集合 而且从尾部写入元素 127.0.0.1:6379> RPUSH datalist AA AB AC (integer) 3 # RPOP 队尾弹出 127.0.0.1:6379> RPOP datalist "AC" # RPUSHX 只有在键已存在并保存列表的状况下,才将指定的值插入存储在键的列表尾部。 与 RPUSH 相反,当键不存在时将不执行任何操做 127.0.0.1:6379> RPUSHX datalist AF (integer) 3 127.0.0.1:6379> RPUSHX datalist2 AF (integer) 0 # RPOPLPUSH 原子操做 移除原数列表的队尾元素到目标元素的头部。 127.0.0.1:6379> RPOPLPUSH datalist datalistnew "AF" 127.0.0.1:6379> LINDEX datalistnew 0 "AF"
Blpop、BRPOP 、BRPOPLPUSH 对应LPOP、RPOP RPOPLPUSH的阻塞版本。code
127.0.0.1:6379> BLPOP datalist AN 10 1) "datalist" 2) "AB" 127.0.0.1:6379> BLPOP datalist AN 10 (nil) (10.04s)
# LLEN 返回集合长度 127.0.0.1:6379> LLEN namelist (integer) 3 # LRANGE 返回指定下标中的value 127.0.0.1:6379> LRANGE namelist 0 4 1) "wangwu" 2) "lisi" 3) "zhangsan" #LTRIM 保留指定元素下标的元素 删除其余元素 127.0.0.1:6379> LTRIM namelist 0 1 OK 127.0.0.1:6379> LRANGE namelist 0 5 1) "wangwu" 2) "lisi"
以上就是Redis的数据类型的Strings和Lists是经常使用操做指令了,更多其余指令能够参考官网,Redis官网,谢谢阅读,但愿对你有所帮助。队列