0%

Redis学习笔记(一)

感觉已经到了不得不学Redis的时候了。。
Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的key-value存储数据库。有几大特点:

  • 开源单线程
  • 内存操作
  • 多种数据结构
  • 支持事务
  • 持久化
  • 高可用、分布式
  • 主从复制

支持的数据结构

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

字符串

字符串就是一对kv串,而对应的value可以是任意数据,比如jpg图片等,最大能存储 512MB

1
2
3
4
SET name "hello"
OK
GET name
"hello"
hello world
counter 1
bits bits

哈希

哈希是键值对集合,是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。每个 hash 可以存储 232 -1 键值对(40多亿)。

1
2
3
4
5
6
HMSET myhash field1 "Hello" field2 "World"
"OK"
redis> HGET myhash field1
"Hello"
redis> HGET myhash field2
"World"

哈希值.jpg

列表

列表是简单的字符串列表,按照插入顺序排序。

列表.jpg

无序集合

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
无序集合如何保证集合中的元素唯一?在添加之前会做两件事

  1. 判断值是否相等
  2. 判断hashcode是否相等

有序集合

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数(score)来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。

数据类型内部编码

数据内部编码.jpg

Welcome to my other publishing channels