Redis系列之扫盲篇(一)

悠悠 2022-11-29 11:17 268阅读 0赞

目录

  1. Redis 是什么?
  2. Redis 安装。
  3. 基础命令扫盲。

Redis 是什么?

Redis 是一款由 C 语言编写的、分布式的高性能的非关系型数据库,其拥有超高的吞吐量(每秒 10w,我司实际使用场景中单端口读请求最高 8w,写请求 5w,具体得看实际使用场景和机器性能),但由于其基于内存操作的,内存相对比较昂贵的,所以一般只有在并发相对比较高且存储要求相对较小的场景中被广泛使用(如果有钱一般可以不用考虑内存的事情,哈哈)。

想说一句多余的话,为什么要学习 Redis 呢?在我看来就两点:

  • 为了当下实际业务使用而学习
  • 为了进大厂

为了这两个目标,想学习的朋友们抓紧上车,一起开启愉快的学习旅程。

Redis 安装

  1. 下载地址

    • http://download.redis.io/releases/
  2. 安装

    $ ls
    redis-4.0.10.tar.gz

    减压

    $ tar -zxvf redis-4.0.10.tar.gz

    编译测试

    $ sudo make test

    编译安装

    $ sudo make install

    以后台的方式启动Redis

    $ ./redis-server ~/software/redis-4.0.10/redis.conf &

    查看Redis进程

    $ ps -ef | grep redis

    登录Redis客户端,Redis默认配置启动端口是6379,可以通过修改配置替换端口

    $ ./redis-cli -h localhost -p 6379

基础命令扫盲

key 常用操作

  1. # 查询指定key是否存在
  2. $ localhost:6379> EXISTS hash1
  3. (integer) 1
  4. $ localhost:6379> EXISTS jjj
  5. (integer) 0
  6. # 删除指定key
  7. $ localhost:6379> DEL hash1
  8. (integer) 1
  9. $ localhost:6379> EXISTS hash1
  10. (integer) 0
  11. # 对指定key设置过期时间
  12. $ localhost:6379> set t1 value ex 5
  13. OK
  14. # 查询指定key的过期时间
  15. $ localhost:6379> TTL t1
  16. (integer) 7
  17. # 查询指定key的类型
  18. $ localhost:6379> type t1
  19. string

kv 结构

  1. # 设置key 对应的value
  2. $ localhost:6379> set key1 value1
  3. OK
  4. # 获取key对应的value
  5. $ localhost:6379> get key1
  6. "value1"
  7. # 设置带有过期时间的key,EX标识5秒后过期,单位秒
  8. $ localhost:6379> set key2 value2 EX 5
  9. OK
  10. # 设置带有过期时间的key,PX表示5秒后过期,单位毫秒
  11. # 设置key,如果其不存在的话,NX
  12. $ localhost:6379> set key3 vlaue3 NX
  13. OK
  14. # 如果key存在的话,则直接返回nil
  15. $ localhost:6379> set key3 value3 NX
  16. (nil)

list 结构

  1. # 从左侧插入元素
  2. $ localhost:6379> LPUSH list1 1
  3. (integer) 1
  4. # 从右侧插入元素
  5. $ localhost:6379> RPUSH list1 2
  6. (integer) 2
  7. # 查看集合内的元素,-1 表示查看所有元素
  8. $ localhost:6379> LRANGE list1 0 -1
  9. 1) "1"
  10. 2) "2"
  11. # 查看list的元素个数
  12. $ localhost:6379> LLEN list1
  13. (integer) 2
  14. # 根据索引查询对应的元素,如果指定的索引不存在,则返回'nil'
  15. $ localhost:6379> LINDEX list1 0
  16. "2"
  17. # 从列表左侧移除一个元素
  18. $ 127.0.0.1:6379> LPOP list1
  19. "5"
  20. # 从列表右侧移除一个元素
  21. $ 127.0.0.1:6379> RPOP list1
  22. "1"
  23. # 从列表右侧移除一个元素添加到左侧
  24. $ localhost:6379> LRANGE list1 0 -1
  25. 1) "three"
  26. 2) "two"
  27. 3) "one"
  28. $ localhost:6379> RPOPLPUSH list1 list2
  29. "one"
  30. $ localhost:6379> LRANGE list2 0 -1
  31. 1) "one"

set 结构

  1. # 向set中添加一个元素
  2. $ localhost:6379> SADD set1 'one' 'two' 'three'
  3. (integer) 3
  4. # 获取set集合中的元素
  5. $ localhost:6379> SMEMBERS set1
  6. 1) "one"
  7. 2) "three"
  8. 3) "two
  9. # 从set集合中移除一个或多个元素
  10. $ localhost:6379> SREM set1 'one'
  11. (integer) 1
  12. # 从set集合中移除一个或多个元素并返回被删除元素
  13. $ localhost:6379> SPOP set1 1
  14. 1) "three"
  15. # 获取当前set集合元素个数
  16. $ localhost:6379> SCARD set1
  17. (integer) 3
  18. # 从set集合随机获取元素但不删除
  19. $ localhost:6379> SRANDMEMBER set1 1
  20. 1) "one"
  21. $ localhost:6379> SMEMBERS set1
  22. 1) "three"
  23. 2) "two"
  24. 3) "one"
  25. # 判断set集合中是否存在指定元素,如果存在则返回1,不存在返回0
  26. $ localhost:6379> SISMEMBER set1 'one'
  27. (integer) 1
  28. $ localhost:6379> SISMEMBER set1 '4'
  29. (integer) 0

sorted set 结构

  1. # 向有序集合中添加元素
  2. $ localhost:6379> ZADD zset1 1 'one'
  3. (integer) 1
  4. # 获取有序集合中指定分数范围的元素
  5. $ localhost:6379> ZRANGE zset1 0 -1
  6. 1) "one"
  7. 2) "two"
  8. 3) "three"
  9. # 删除有序集合中的元素
  10. $ localhost:6379> ZREM zset1 'one'
  11. (integer) 1
  12. # 获取有序集合元素个数
  13. $ localhost:6379> ZCARD zset1
  14. (integer) 2
  15. # 为有序集合中指定成员增加指定个数
  16. $ localhost:6379> ZINCRBY zset1 2 "one"
  17. "4"
  18. $ localhost:6379> ZRANGE zset1 0 -1 WITHSCORES
  19. 1) "two"
  20. 2) "2"
  21. 3) "three"
  22. 4) "3"
  23. 5) "one"
  24. 6) "4"
  25. # 获取有序集合指定分数范围内的元素数量
  26. $ localhost:6379> ZCOUNT zset1 0 2
  27. (integer) 1
  28. # 获取元素在有序集合中的排名,分数越大,排名值越大
  29. $ localhost:6379> ZRANK zset1 'one'
  30. (integer) 2
  31. # 获取元素在有序集合中的排名。分数越大,排名值越小
  32. $ localhost:6379> ZREVRANK zset1 'one'
  33. (integer) 0
  34. # 获取指定元素的分值
  35. $ localhost:6379> ZSCORE zset1 'one'
  36. "4"

hash 结构

  1. # 向hash集合中添加一个元素
  2. $ localhost:6379> HSET hash1 field1 1
  3. (integer) 1
  4. # 向hash集合中添加多个元素
  5. $ localhost:6379> HMSET hash1 field2 2 field3 3
  6. OK
  7. # 获取指定field对应的value
  8. $ localhost:6379> HGET hash1 field1
  9. "1"
  10. # 批量获取指定field下的value
  11. $ localhost:6379> HMGET hash1 field1 field2 field3
  12. 1) "1"
  13. 2) "2"
  14. 3) "3"
  15. # 获取hash结合里面所有元素
  16. $ localhost:6379> HGETALL hash1
  17. 1) "filed1"
  18. 2) "1"
  19. 3) "filed2"
  20. 4) "2"
  21. 5) "filed3"
  22. 6) "3"
  23. 7) "field3"
  24. 8) "3"
  25. # 判断指定filed是否在Hash结构中存在
  26. $ localhost:6379> HEXISTS hash1 field1
  27. (integer) 1
  28. $ localhost:6379> HEXISTS hash1 field5
  29. (integer) 0
  30. # 从hash结构中删除一个或多个field
  31. $ localhost:6379> HDEL hash1 field1 field2
  32. (integer) 2
  33. # 对hash集合中指定field的value增加值
  34. $ localhost:6379> HINCRBY hash1 field1 2
  35. (integer) 3
  36. $ localhost:6379> HGET hash1 field1
  37. "3"
  38. # 获取hash结构中所有的key
  39. $ localhost:6379> HKEYS hash1
  40. 1) "filed1"
  41. 2) "filed2"
  42. 3) "filed3"
  43. 4) "field3"
  44. 5) "field1"
  45. $ 获取hash集合中所有的value
  46. $ localhost:6379> HVALS hash1
  47. 1) "1"
  48. 2) "2"
  49. 3) "3"
  50. 4) "3"
  51. 5) "3"
  52. # 获取hash集合中的元素个数
  53. $ localhost:6379> HLEN hash1
  54. (integer) 5

发表评论

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

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

相关阅读

    相关 敏捷开发Scrum扫盲

    简介 根据自己的理解,用自己的话来讲述Scrum中的各个环节,主要目的有两个,一个是进行知识的总结,另外一个是觉得网上很多学习资料的讲述方式让初学者不太容易理解;所以我决