Redis数据类型Strings、Lists常用操作指令

Redis数据类型Strings、Lists常用操作指令

Strings常用操作指令

GET、SET相关操作

# 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批量设置键值对

## 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指定自增步长, INCRBYFLOAT 浮点数自增

# 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"

DECR 自减 DECRBY指定步长自减

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

APPEND 追加操作

If key already exists and is a string, this command appends the value at the end of the string. If key does not exist it is created and set as an empty string, so APPEND will be similar to SET in this special case.

如果key存在,append命令会在原值的末尾处追加指定的value,如果key不存在,则会新建一个空字符串,并且追加对应的value。

# 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 GETRANGE 字符串的替换与截取

SETRANGE:改变原来的字符串 从指定下标开始替换相应的值。如果key存在,则直接替换,如果key不存在,且offset大于0,会用\x00补全。

## 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 []取值,不改变原来的字符串

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"

Strings其他常用指令

## STRLEN 返回对应value的长度
127.0.0.1:6379> STRLEN name
(integer) 11

Lists常用操作指令

LPUSH LPUSHX LPOP 队列头部相关操作

# 将所有指定的值插入到存储在键上的列表的头部,可以一次写入多个值,值是依次写入队列头部。
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 RPOP RPUSHX RPOPLPUSH 队列尾部相关操作

#  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 阻塞操作

Blpop、BRPOP 、BRPOPLPUSH 对应LPOP、RPOP RPOPLPUSH的阻塞版本。

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官网,谢谢阅读,希望对你有所帮助。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容