02-redis-字符串类型-哈希类型-List类型

字符串类型操作

  • redisdoc.com 所有语法文档

增删改查

  • 新增
set key value
set name js
  • 查询
get key 
get name
  • 修改

    • set key value
    • 如果key已经存在就是修改
  • 删除

del key
del name

字符串类型-高级设置

  • set key value

    • 不管key是否存在都会设置(不存在就新增, 存在就覆盖)
    • set name css
  • setnx key value

    • 只有key不存在才设置(新增)
    • setnx name cs
  • set key value xx

    • 只有key存在才设置(更新)
    • set name vue xx

字符串类型- 批量处理

  • 批量添加值

    • meset key value key value ...
    • meset age 18 gender nan
  • 批量查询值

    • mget key key key ...
    • mget name age gender

字符串类型-其他操作

  • 设置新值返回旧值

    • getset key newValue
    • getset name react
  • 给旧值追加数据

    • append key value
    • append name 12
  • 计算value字符串长度

    • strlen key
    • strlen name
    • 注意点:中文问题
  • 获取指定下标范围的值

    • getrange key start end
    • getrange name 0 -1
  • 从指定下标开始设置字符串的值

    • setrange key offset value
    • setrange name 1 123

字符串类型-自增自减操作

  • incr

    • 作用: 给指定key的对应的 value 自增 1,
    • 如果key 不存在, 会自动新增, 并从0开始自增1
    • 格式 : incr key
  • decr

    • 作用: 给指定key的对应的 value 自减 1,
    • 如果key 不存在, 会自动递减, 并从0开始自减1
    • 格式 : decr key
  • incrby

    • 作用: 给指定key的对应的Value增加指定值, 如果key不存在会自动新增, 并从0开始增加
    • 格式: incrby key number
  • decrby

    • 作用: 给指定key的对应的Value减少指定的值, 如果key不存在会自动新增, 并从0开始减少
    • 格式: decrby key number
  • incrbyfloat

    • 作用: 给指定key的对应的Value增加指定值, 如果key不存在会自动新增, 并从0开始增加
    • 格式: incrbyfloat key float

哈希类型

  • hash类型相当于 Js 中的对象, 可以把整个对象当做 value 存储起来

哈希类型-增删改查

  • 增加

    • hset key field value
    • hset user age css
    • hset user age 15
  • 查询

    • hget key field
    • hget user name
  • 修改

    • 如果字段不存在就是新增, 如果字段存在就是修改
    • hset key field value
    • hset user name react
  • 删除

  • 删除指定字段

    • hdel key field
    • hdel user name
  • 删除对应key所有数据

    • del key
    • del user

哈希类型-高级操作

  • 批量新增

    • hmset key field1 value1 field2 value2
    • hmset user name css age 12
  • 批量查询

    • hmget key field field2 field3
    • hmget user name age
  • 工具指令

    • hlen key 返回key存储的hash表中有多少条数据
    • hlen user
  • 是否存在指定key存储的Hash中是否有指定的字段

    • hexists key field
    • hexists user name 返回1表示穿在
    • hexists user gender 返回0 表示不存在

哈希类型-其他操作

  • 查询所有的field

    • hkeys key
    • hkeys user
  • 查询所有的field 和 value

    • hvals key
    • hvals user
  • 查询所有的field 和value

    • hgetall key
    • hgetall user
    • 注意点:redis是单线程的, 以上操作比较耗时,慎用

List类型

  • List类型就相当于JavaScript中的数组,可以把整个数组当做一个Value存储起来
  • 注意点: List是有序的

List类型-增删改查

  • 增加

  • 从第二value开始添加到第一个的左边

    • lpush key value1 value2 value3
    • lpush arr aa bb cc
  • 从第二value开始添加到前一个的右边

    • rpush key value1 value2 value3
    • rpush arr ff gg
  • 查询

  • 查询指定范围的数据

    • lrange key startIndex endIndex
    • 索引从0开始, endIndex等于-1表示取到最后
    • lrange arr 0 -1
  • 查询指定索引数据

    • lindex key index
    • 从前往后索引从0开始, 从后往前索引从-1开始
  • 修改

    • lset key index value
    • 注意 index 从0开始
  • 删除

  • lpop 删除左边元素

    • lpop key
    • lpop user
  • rpop 删除右边元素

    • rpop key
    • rpop user
  • lrem删除指定个数的指定元素

    • lrem key count value
    • count > 0 : 从表头开始先表尾所有, 移除与value相等的元素, 数量为count
    • count < 0 : 从表尾开始向表头搜索, 移除与value相等的元素,数量为count的绝对值
    • count = 0 : 移除表中所有与value 相等的值
  • ltrim按照索引剪切列表

    • ltrim key start end

List类型-其他操作

  • 追加数据

    • lpush key value1 value2 value3

    • lpush arr 11 22

    • rpush key value1 value2 value3

    • rpush arr 33 44

  • 插入数据

    • linsert key before|after oldValue newValue
    • linsert arr after 11 test
  • 获取列表长度

    • llen key
    • llen arr

列表实现简单数据结构

  • 栈结构 - 先进后出

    • lpush + lpop
  • 队列结构 - 先进先出

    • lpush + rpop
  • 如果需要需要'先进后出'或者'先进先出'的数据

  • 我们就可以将这些数据存储到Redis的列表中

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

推荐阅读更多精彩内容