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中使用双向链表,双向链表最基础的自然就是双端插入和获取了。需要注意的是插入后返回的链表的长度
测试环境:0>lpush numbers 1 "1" 测试环境:0>rpush numbers 2 "2" 测试环境:0>rpush numbers 3 "3" 测试环境:0>lpop numbers "1" 测试环境:0>rpop numbers "3"
字典(h)
以下面为例子说明
这有点像java的HashMap,但是有不一样,key 是 car ,那么 value 是 color ,name ,price 中的哪一个呢?redis 中的使用是这样的
测试环境:0>hset car price 500 "1" 测试环境:0>hset car name bmw "1" 测试环境:0>hget car "ERR wrong number of arguments for 'hget' command" 测试环境:0>hget car price "500" 测试环境:0>hset cat price 600 "1" 测试环境:0>hget cat price "600"
redis 中上面例子的key 是 cat price 或是 cat color 等 。
跳跃表(z)
redis中使用跳跃表的地方有两个地方,阅读前先看一下参考资料,了解跳跃表
- 有序集合键
- 集群节点中用作内部数据结构
整数集合(s)
相当于java中的 HashSet ,简单使用如下 :
测试环境:0>sadd letters a b c "3" 测试环境:0>smembers letters 1) "a" 2) "c" 3) "b"
分布式锁实现
参考资料
-《redis设计及实现》
- https://www.jianshu.com/p/ac351674d8eb (推荐一看)
- http://doc.redisfans.com (推荐一看)
- https://redis.io/topics/distlock (redis 分布式锁参考)