Redis入门:二、常用数据类型及简单命令

£神魔★判官ぃ 2023-02-15 12:36 75阅读 0赞

文章目录

    • 一、常用数据类型
    • 二、常用的命令
        • 1、String数据类型
        • 2、List
        • 3、Set
        • 4、Zset
        • 5、hash

一、常用数据类型

Redis中的key可以理解为mysql中数据库。
在这里插入图片描述
废话不多说,开局一张图,剩下全靠编,不对,剩下全靠讲解。

二、常用的命令

redis命令参考文档:http://doc.redisfans.com/
由于命令比较多,就不一一列举了。放一张图感受一下:
在这里插入图片描述

有需要可以去该网站进行查找,也比较方便,后面就讲解一下常用的一些命令,特别是五大基本类型,基本都是大同小异,主要从增删改查四个功能来讲解对应的指令。
开始之前,先讲解一下系统指令

  1. flushdb #删除当前数据库
  2. flushall #删库跑路,慎用
  3. keys * #查看所有的key,即所有的数据库

具体演示后面会用到。

1、String数据类型

  1. 127.0.0.1:6379> flushdb #清除数据库
  2. OK
  3. 127.0.0.1:6379> set name wj #设置key为name value为wj
  4. OK
  5. 127.0.0.1:6379> set age 18 #也可以为数据类型
  6. OK
  7. 127.0.0.1:6379> get name #获取对应key的value值
  8. "wj"
  9. 127.0.0.1:6379> mget age name addr #一次性获取多个key的value值。key的顺序以及是否存在无关,若为空则返回null
  10. 1) "18"
  11. 2) "wj"
  12. 3) (nil)
  13. 127.0.0.1:6379> strlen name #获取key对应的value长度
  14. (integer) 2
  15. 127.0.0.1:6379> exists name #判断该key是否为空
  16. (integer) 1
  17. 127.0.0.1:6379> setnx age 20 #判断age是否为空,若不为空,则设置为20,若存在,则不作改变
  18. (integer) 0
  19. 127.0.0.1:6379> get age #由于age已经存在,所以上述指令不作效
  20. "18"
  21. 127.0.0.1:6379> append name lovezjy #作为字符串还可以拼接字符串
  22. (integer) 9
  23. 127.0.0.1:6379> get name #拼接后的内容
  24. "wjlovezjy"
  25. 127.0.0.1:6379> getrange name 1 4 #截取字符串
  26. "jlov"

好了,字符串的一些基本骚操作就到此了,更多使用命令可以参考手册。

2、List

  1. 127.0.0.1:6379> lpush mylist 1 #左边插入
  2. (integer) 1
  3. 127.0.0.1:6379> lpush mylist 2
  4. (integer) 2
  5. 127.0.0.1:6379> lpush mylist 3
  6. (integer) 3
  7. 127.0.0.1:6379> rpush mylist 4 #右边插入
  8. (integer) 4
  9. 127.0.0.1:6379> rpush mylist 5
  10. (integer) 5
  11. 127.0.0.1:6379> lrange mylist 0 -1 #显示所有元素
  12. 1) "3"
  13. 2) "2"
  14. 3) "1"
  15. 4) "4"
  16. 5) "5"
  17. 127.0.0.1:6379> lpop mylist #左边取出,并删除
  18. "3"
  19. 127.0.0.1:6379> rpop mylist #右边取出,并删除
  20. "5"
  21. 127.0.0.1:6379> lrange mylist 0 -1 #取值完后的元素
  22. 1) "2"
  23. 2) "1"
  24. 3) "4"
  25. 127.0.0.1:6379> lindex mylist 1 #查找1号位置的元素
  26. "1"
  27. 127.0.0.1:6379> lset mylist 1 9 #修改1号位置的元素由1变为9
  28. OK
  29. 127.0.0.1:6379> lrange mylist 0 -1
  30. 1) "2"
  31. 2) "9"
  32. 3) "4"
  33. 127.0.0.1:6379> lrem mylist 1 2 #删除mylist中值为2的元素,删除1个。list可以存放重复值,所以删除时有个数选择
  34. ##############################################################
  35. 127.0.0.1:6379> lrange newlist 0 -1 #创建一个新数组
  36. 1) "4"
  37. 2) "3"
  38. 3) "2"
  39. 4) "1"
  40. 127.0.0.1:6379> rpoplpush mylist newlist #将mylist尾部元素取出添加到newlist头部
  41. "4"
  42. 127.0.0.1:6379> lrange newlist 0 -1
  43. 1) "4"
  44. 2) "4"
  45. 3) "3"
  46. 4) "2"
  47. 5) "1"

list集合的一些基本操作就到这里了。

3、Set

  1. ###############################################################
  2. 127.0.0.1:6379> sadd myset one #存入元素
  3. (integer) 1
  4. 127.0.0.1:6379> sadd myset two
  5. (integer) 1
  6. 127.0.0.1:6379> sadd myset three
  7. (integer) 1
  8. 127.0.0.1:6379> sadd myset three #不允许有重复值
  9. (integer) 0
  10. 127.0.0.1:6379> sadd myset four
  11. (integer) 1
  12. 127.0.0.1:6379> smembers myset #显示所有元素
  13. 1) "three"
  14. 2) "four"
  15. 3) "two"
  16. 4) "one"
  17. 127.0.0.1:6379> scard myset #显示数组大小
  18. (integer) 4
  19. 127.0.0.1:6379> srem myset one two #删除元素,可以同时删除一个或者多个
  20. (integer) 2
  21. 127.0.0.1:6379> smembers myset
  22. 1) "three"
  23. 2) "four"
  24. 127.0.0.1:6379> sismember myset three #判断是否存在three元素
  25. (integer) 1
  26. 127.0.0.1:6379> spop myset #移除并返回集合中的一个随机元素
  27. "four"
  28. 127.0.0.1:6379> smembers newset #创建一个新集合
  29. 1) "three"
  30. 2) "four"
  31. 3) "eight"
  32. 4) "seveb"
  33. 5) "six"
  34. 6) "ten"
  35. 7) "nine"
  36. 8) "five"
  37. 127.0.0.1:6379> srandmember newset #返回集合中一个或多个随机数,并不会做删除操作
  38. "ten"
  39. 127.0.0.1:6379> srandmember newset
  40. "five"
  41. 127.0.0.1:6379> smembers newset
  42. 1) "three"
  43. 2) "four"
  44. 3) "eight"
  45. 4) "seveb"
  46. 5) "six"
  47. 6) "ten"
  48. 7) "nine"
  49. 8) "five"
  50. ############################################################
  51. 127.0.0.1:6379> smembers myset #创建集合1
  52. 1) "three"
  53. 2) "two"
  54. 3) "four"
  55. 4) "one"
  56. 127.0.0.1:6379> smembers newset #创建集合2
  57. 1) "three"
  58. 2) "four"
  59. 3) "six"
  60. 4) "five"
  61. 127.0.0.1:6379> sdiff myset newset #返回第一个集合的差集
  62. 1) "two"
  63. 2) "one"
  64. 127.0.0.1:6379> sinter myset newset #返回两个集合的交集
  65. 1) "three"
  66. 2) "four"
  67. 127.0.0.1:6379> sunion myset newset #返回两个集合的并集
  68. 1) "three"
  69. 2) "two"
  70. 3) "four"
  71. 4) "one"
  72. 5) "six"
  73. 6) "five"
  74. #################################################################

4、Zset

  1. 127.0.0.1:6379> zadd myset 1 zjy #添加元素,1为分数,用于排序
  2. (integer) 1
  3. 127.0.0.1:6379> zadd myset 2 wj
  4. (integer) 1
  5. 127.0.0.1:6379> zadd myset 3 wgx
  6. (integer) 1
  7. 127.0.0.1:6379> zadd myset 4 wsx
  8. (integer) 1
  9. 127.0.0.1:6379> zadd myset 5 wj #有重复值时,分数会覆盖前一个
  10. (integer) 0
  11. 127.0.0.1:6379> zadd myset 3 zlm #元素不允许重复但分数可以重复
  12. (integer) 1
  13. 127.0.0.1:6379> zcard myset #统计集合大小
  14. (integer) 5
  15. 127.0.0.1:6379> zrange myset 0 -1 #显示所有集合元素
  16. 1) "zjy"
  17. 2) "wgx"
  18. 3) "zlm"
  19. 4) "wsx"
  20. 5) "wj"
  21. 127.0.0.1:6379> zrange myset 0 -1 withscores #显示所有集合元素,并带上分数
  22. 1) "zjy"
  23. 2) "1"
  24. 3) "wgx"
  25. 4) "3"
  26. 5) "zlm"
  27. 6) "3"
  28. 7) "wsx"
  29. 8) "4"
  30. 9) "wj"
  31. 10) "5"
  32. ##############################################################
  33. 127.0.0.1:6379> zrem myset wj zjy wgx #删除一个或者多个元素
  34. (integer) 3
  35. 127.0.0.1:6379> zrange myset 0 -1 withscores
  36. 1) "zlm"
  37. 2) "3"
  38. 3) "wsx"
  39. 4) "4"

有序集合的基本操作就到这里了

5、hash

  1. 127.0.0.1:6379> hset user1 name wj #插入一个字段
  2. (integer) 1
  3. 127.0.0.1:6379> hset user1 age 18
  4. (integer) 1
  5. 127.0.0.1:6379> hset user1 addr jiangxi
  6. (integer) 1
  7. 127.0.0.1:6379> hmset user2 name zjy age 18 addr hubei #也可以一次性将多个k-v保存到key中
  8. OK
  9. 127.0.0.1:6379> hset user1 sex boy
  10. (integer) 1
  11. 127.0.0.1:6379> hexists user2 sex #判断k值是否存在
  12. (integer) 0
  13. 127.0.0.1:6379> hexists user1 sex
  14. (integer) 1
  15. 127.0.0.1:6379> hdel user1 sex #删除k-v
  16. (integer) 1
  17. 127.0.0.1:6379> hgetall user1 #获取所有的键值对
  18. 1) "name"
  19. 2) "wj"
  20. 3) "age"
  21. 4) "18"
  22. 5) "addr"
  23. 6) "jiangxi"
  24. 127.0.0.1:6379> hkeys user2 #获取所有的k值
  25. 1) "name"
  26. 2) "age"
  27. 3) "addr"
  28. 127.0.0.1:6379> hlen user1 #获取长度大小
  29. (integer) 3
  30. 127.0.0.1:6379> hmget user1 name age addr #获取多个k值对应的v值
  31. 1) "wj"
  32. 2) "18"
  33. 3) "jiangxi"
  34. 127.0.0.1:6379> hvals user2 #获取所有的v值
  35. 1) "zjy"
  36. 2) "18"
  37. 3) "hubei"
  38. 127.0.0.1:6379> hsetnx user1 sex boy #如果不存在则创建一个k-v对
  39. (integer) 1
  40. 127.0.0.1:6379> hgetall user1 #获取所有集合中的内容
  41. 1) "name"
  42. 2) "wj"
  43. 3) "age"
  44. 4) "18"
  45. 5) "addr"
  46. 6) "jiangxi"
  47. 7) "sex"
  48. 8) "boy"


综上,五大基本数据类型和一些基本操作就介绍到这里了。

发表评论

表情:
评论列表 (有 0 条评论,75人围观)

还没有评论,来说两句吧...

相关阅读