> 数据库 > Redis >

Redis数据结构,持久化优缺点,数据淘汰策略

1:Redis五种数据结构简介 String list set hash zset 
举例如下: 
1:String——字符串 
127.0.0.1:6379> set name “2” 
OK 
127.0.0.1:6379> get name 
“2”

2:Hash——字典

//建立哈希,并赋值 
127.0.0.1:6379> HMSET user:001 username antirez password P1pp0 age 34 
OK 
//列出哈希的内容 
127.0.0.1:6379> HGETALL user:001 
1) “username” 
2) “antirez” 
3) “password” 
4) “P1pp0” 
5) “age” 
6) “34” 
//更改哈希中的某一个值 
127.0.0.1:6379> HSET user:001 password 12345 
(integer) 0 
//再次列出哈希的内容 
127.0.0.1:6379> HGETALL user:001 
1) “username” 
2) “antirez” 
3) “password” 
4) “12345” 
5) “age” 
6) “34”

3:List——列表 
LPUSH在lists的左侧插入一个新元素,用RPUSH在lists的右侧插入一个新元素,用LRANGE命令从lists中指定一个范围来提取元素。

//新建一个list叫做mylist,并在列表头部插入元素”1” 
127.0.0.1:6379> lpush mylist “1” 
//返回当前mylist中的元素个数 
(integer) 1 
//在mylist右侧插入元素”2” 
127.0.0.1:6379> rpush mylist “2” 
(integer) 2 
//在mylist左侧插入元素”0” 
127.0.0.1:6379> lpush mylist “0” 
(integer) 3 
//列出mylist中从编号0到编号1的元素 
127.0.0.1:6379> lrange mylist 0 1 
1) “0” 
2) “1” 
//列出mylist中从编号0到倒数第一个元素 
127.0.0.1:6379> lrange mylist 0 -1 
1) “0” 
2) “1” 
3) “2”

4:Set——集合

//向集合myset中加入一个新元素”one” 
127.0.0.1:6379> sadd myset “one” 
(integer) 1 
127.0.0.1:6379> sadd myset “two” 
(integer) 1 
//列出集合myset中的所有元素 
127.0.0.1:6379> smembers myset 
1) “one” 
2) “two” 
//判断元素1是否在集合myset中,返回1表示存在 
127.0.0.1:6379> sismember myset “one” 
(integer) 1 
//判断元素3是否在集合myset中,返回0表示不存在 
127.0.0.1:6379> sismember myset “three” 
(integer) 0 
//新建一个新的集合yourset 
127.0.0.1:6379> sadd yourset “1” 
(integer) 1 
127.0.0.1:6379> sadd yourset “2” 
(integer) 1 
127.0.0.1:6379> smembers yourset 
1) “1” 
2) “2” 
//对两个集合求并集 
127.0.0.1:6379> sunion myset yourset 
1) “1” 
2) “one” 
3) “2” 
4) “two”

5:Sorted Set——有序集合

2:Redis 优势 
性能极高,redis的读的速度11万次/s,写的速度8.1万/s 
丰富的数据类型—string,map,list,sets,Sorted Set五种数据结构 
丰富的特性–redis还支持通知,key的过期,publish/subscribe等特性 
原子–redis所有操作都是原子性的,同时redis还支持对几个操作和并后的原子性执行

3:redis持久化的两种方式以及优缺点 
RDB方式——将redis某一时刻的数据持久化到磁盘,快照式的持久化方式

AOF方式——只允许追加不允许修改的文件

redis两种持久化方式的优缺点 
AOF保证数据不丢失,作为恢复数据的第一选择,RDB可以快速地进行数据恢复

4:Redis作为缓存(六种淘汰策略) 
1:不删除策略——–达到最大的内存限制时,如果需要更多的内存,直接返回错误信息 
2:所有的key通用—–优先删除最近最少使用的key 
3:只限于设置啦expire的部分,优先删除最近最少使用的key 
4:所有的key通用,随机删除一部分key 
5:只限于设置啦expire的部分,随机删除一部分key 
6:只限于设置啦expire的部分,优先删除剩余时间最短的key

5:redis的过期策略 
定时过期—–创建定时器,立即删除过期的数据 
惰性过期—–只有当访问一个key时,才会判断该key是否已过期 
定期过期—–每隔一定时间,会扫描一定数量的数据库expires字典的key

(责任编辑:IT)