Redis端口号6379的来源

Redis的端口号是6379,但这个端口号并不是随机选择的,源于"MERZ",这个单词在手机当中的对应数字就是6379。"MERZ"在Redis作者Antirez的好友圈当中代表愚蠢的意思。

数据结构

Redis的key只能是字符串,value可以是String,Hash,List,Sorted Set(Zset)。

String

Redis的字符串是动态字符串(SDS Simple Dynamic String ),内部结构有点儿类似于java的ArrayList,都是采取预分配来减少内存的频繁扩容。如图len是实际字符串的长度,capacity是预分配的空间(数组容量)。创建字符串时,len和capacity一样长,使用字节数组存放内容。

struct SDS<T> {     T capacity; // 数组容量     T len; // 数组长度     byte flags; // 特殊标识位     byte[] content; // 数组内容 }

  • 如果在1M以内,都是加倍扩充容量
  • 如果超过1M则,每次扩容1M
  • 字符串的最大容量是512M

String的一些基础操作

  • 普通get set
127.0.0.1:6379> set name amber OK 127.0.0.1:6379> get name "amber" 127.0.0.1:6379> exists name (integer) 1 127.0.0.1:6379> del name (integer) 1 127.0.0.1:6379> get name (nil) 127.0.0.1:6379>  
  • 批量mset,mget
127.0.0.1:6379> set name amber OK 127.0.0.1:6379> set name2 nick OK 127.0.0.1:6379> mget name name2 1) "amber" 2) "nick" 127.0.0.1:6379> mset name3 wade name4 hellen OK 127.0.0.1:6379> mget name name2 name3 name4 1) "amber" 2) "nick" 3) "