Redis-第五章節-8種資料型別

itread01 2021-01-24 13:06:31
redis 第五 redis- 第五章


# 目錄- 一、Redis對key的操作- 二、五種資料型別 - String型別 - List(集合) - Set(集合) - Hash(雜湊) - Zset(有序集合)- 三、三種特殊資料型別 - geospatial(地理位置) - hyperloglog(優點:佔用記憶體小) - Bitmap(點陣圖)## 一、Redis對key的操作- 判斷key是否存在:exists key_name- 設定key的過期時間:expire key_name [過期的時間值](number型別)- 檢視key的過期時間:ttl key_name- 獲取所有的key: keys *## 二、五種資料型別### String(字串)字串型別操作:- 設定值:set key_name value- 獲取值:get key_name- 追加字串,如果當前的key不存在就會建立一個新的key: append key_name value- 獲取字串長度:strlen key_name- 擷取字串:getrange key_name [start index] [end index]- 指定的字串覆蓋給定key所儲存的字串值,覆蓋的位置從偏移量 offset(數字型別) 開始:setrange key_name offset value- 為指定的key設定值及其過期時間,如果key已經存在,setex命令將會替換舊的值: setex key_name [expiration time] value- 先獲取值再設定值:getset key_name value數字型別操作:- number數字型別自增1:incr key_name- number數字型別減1:decr key_name- 增加指定的值:incrby key_name [具體的值]number型別- 減少指定的值:decrby key_name key_name [具體的值]number型別批量操作:- 批量設定值:mset key_name1 value1 key_name2 value2 key_name3 value3- 批量獲取值: - 方式1: mget key_name1 key_name2 key_name3 - 方式2:msetnx key_name1 key_name2 key_name3 //這個是原子性操作,要麼全部成功,要麼全部失敗。 ### List(集合)- 設定值: - 左邊:lpush key_name value - 右邊:rpush key_name value - 獲取值: - 左邊: - lrange key_name [start index] [end index] - lrange key_name 0 -1 獲取所有的元素- 移除資料: - 左邊:lprop key_name - 右邊:rprop key_name- 根據引數count的值,移除列表中與引數value相等的元素: - lrem key_name [count] value - count > 0:從表頭開始向表尾搜尋,移除與value相等的元素,數量為count。 - count < 0:從表尾開始向表頭搜尋,移除與value相等的元素,數量為count的絕對值。 - count = 0: 移除表中所有與value相等的值。- 根據索引獲取元素:lindex key_name [index]- 獲取集合的長度:llen key_name- 替換列表中指定下標的值,如果不存在就會報錯:lset key_name [index] value- 在列表的元素前或者後插入元素。當指定元素不存在於列表中時,不執行任何操作。當列表不存在時,被視為空列表,不執行任何操作。如果 key 不是列表型別,返回一個錯誤: linsert key_name [before] || [after] oldvalue newvalue### Set(集合)- 設定值:sadd key_name value- 獲取值:smembers key_name- 隨機從集合中抽取資料:srandmember key_name- 隨機從集合中抽取指定個數的資料:srandmemer key_name [number]- 移除元素:srem key_name value- 用於移除集合中的指定key的一個或多個隨機元素,移除後會返回移除的元素: spop key_name- 判斷值是否在集合中:sismember key_name value- 獲取集合中的元素的個數:scard key_name- 集合之間操作: - 將值移動到另一個集合中:smove oldlist newlist value - 差集:sidff oldlist newlist - 交集:sinter oldlist newlist - 並集:sunion oldlist newlist### Hash(雜湊)- 設定值: - 方式1:hset key_name filed1 value - 方式2:hsetnx key_name filed1 value //如果不存在則可以設定 - 方式3:hsetnx key_name filed1 value //如果存在不能設定- 獲取值:hget key_name filed1- 獲取所有值:hgetall key_name- 刪除集合中某一個欄位的值:hdel key_name filed1- 獲取集合中的元素的個數:hlen key_name- 判斷key是否存在:hexists key_name- 獲取所有的filed: hkeys key_name- 獲取所有的值:hvals key_name- 自增:hincrby key_name filed1 1- 自減:decrby key_name filed1 1- 批量操作: - 設定值:hmset key_name filed1 value1 filed2 value2 - 獲取值:hmget key_name filed1 filed2### Zset(有序集合)- 設定值(number:排序的標識位,這個可以重複):zadd key_name [number] value- 設定多個值(number:排序的標識位,這個可以重複): zadd key_name [number] value2 [number] value3- 獲取值:zrange key_name 0 -1- 排序:zrangebysocre key_name -inf +inf- 移除元素:zrem key_name value- 獲取集合中元素的數量:zcard key_name- 獲取指定區間的成員的數量:zcount key_name [start index] [end index]## 三、三種特殊資料型別 ### geospatial(地理位置)- 新增城市的位置:geoadd china:city 116.40 39.90 beijing- 獲取指定城市的經緯度:geopos china:city beijing chongqing- 獲取兩人之間的距離:geodist china:city beijing shanghai km- 獲取指定半徑範圍之內的座標:georadius china:city 110 30 1000 km- 根據元素尋找元素:georeadiusbymember china:city beijing 1000 km### hyperloglog(優點:佔用記憶體小)- 設定值:PFadd key_name value1 value2 value3 value4 value5 value6- 獲取數量:PFCOUNT key_name- 合併兩個集合:PFMERGE 新集合 集合2 集合3### Bitmap(點陣圖)- 記錄週一到週五的打卡:setbit sign 0 1 // 0是周幾 1 是否打卡- 檢視某一天是否打卡:gitbit sign 3- 統計打卡的天數:bitc
版权声明
本文为[itread01]所创,转载请带上原文链接,感谢
https://www.itread01.com/content/1611457685.html

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云