redis 学习-入门-数据类型

概述

redis是基于key-value 我们所说的数据类型实际是 key-value 中的 value 。文章主要介绍的是redis 几个重要的数据类型的使用。

简单使用

//keys pattern 获取某种匹配的key
例如 :  keys *  

set foo 1

//获取某个key 对应的 value 是什么类型的
例如 : type  foo 

//某个key-value 是否存在
例如 : EXISTS foo 

//删除键
例如 :DEL foo 


数据类型使用

我们前面说的 redis 的储存数据结构的格式为 :key-value 的格式,其中 key 为 String , 而 value 取下面几种数据类型:

string

Redis 中的数据相当于

 HashMap<String,String> map = new HashMap<String,String>();  

示例 :

> set hello world
OK
> get hello
world

散列类型

类似于:

HashMap<String,HashMap<String,String>> map = new HashMap<String,HashMap<String,String>>();  

示例 :

> 127.0.0.1@6379 connected!
## 设置一个 哈希值 
> hset car price 500
1
## 设置第二个哈希值 
> hset car name BMW
1
## 单独拿出第一个哈希值 
> hget  car price
500
## 一起拿出来 
> HMGET car  price name
500
BMW

列表类型

类似于:

HashMap<String,Node<String>  hashmap = new HashMap<String,Node<String>();

其中 value 是个双向链表 ,获取靠近两端的数据速度极快, 而当元素增多后 ,访问中间数据的数据会较慢,所以它更加适合实现如 “新鲜事” 或 “日志” 这种很少访问中间元素的应用

集合类型

类似于:

HashMap<String,List<String>>

示例 :

> sadd   list  1 2 3 4 48 5 54 32
8
> SMEMBERS list
1
2
3
4
5
32
48
54

有序集合类型

类似于:

HashMap<String,Set<String>>

有序集合类型是使用散列表跳跃表实现的,所以即使读取位于中间部分的数据速度也很快 (时间复杂度是 O(Log(N))), 但是有序队列要比列表类型更耗费内存

示例:

> zadd  settest  70 jim  60 amy 90 mike
3
> ZSCORE settest jim
70

小结

今天小结一下一些 redis 常用的命令,介绍了几个redis重要的数据结构。

参考资料

-《redis设计及实现》

原文地址:https://www.cnblogs.com/Benjious/p/15400112.html