page contents

redis第二节课(小总结)

特点: 一:速度快 1、  由c语言编写,更快解析语言代码; 2、  为了保证效率数据都是缓存在内存中,也可以周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件; 3、  采用单线...
通常是以key-value形式存储

特点:

一:速度快

1、  由c语言编写,更快解析语言代码;

2、  为了保证效率数据都是缓存在内存中,也可以周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件;

3、  采用单线程,避免了不必要的上下文切换和竞争条件,不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗;

4、  数据结构简单,对数据操作也简单

5、  使用多路I/O复用模型,非阻塞I/O

 

二:简单稳定

1、  数据模型为key-value

2、  支持事务,操作都是原子性

 

三:支持多语言

如php、java、python等。

 

优点:

1、  高并发读写的性能;

2、  多种数据结构支持,如支持stringlistsetsorted sethash

3、  减轻数据库负担,有集合计算功能(优于普通数据库和同类别产品)

4、  支持数据持久化,支持AOFRDB两种持久化方式

5、  支持主从复制,主机会自动将数据同步到从机,可以进行读写分离

 

缺点:

1、  Redis不具备自动容错和恢复功能

2、Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。

 

平台使用:

新浪微博              Redis

Goodle                Bigtable

Amazon               SimpleDB

淘宝数据平台          Tair

优酷视频              MongoDB

飞信空间              HandleSocket

视觉中国网站          MongoDB

 

 

Nosql比较:

 

attachments-2021-01-EgjtgAOI5ff6b04debb73.png

 

 

常用场景:

1、排行榜;

2、计数器应用;

3、获取共同好友等;

 

redis与memcache比较:

1、存储类型:memcached所有的值均是简单的字符串,而redis具有stringlistsetsorted sethash等类型;

2、持久化:memcache数据是存储到内存里面,一旦断电,或重启,则数据丢失。redis数据也是存储到内存里面的,但是可以持久化,周期性的把数据给保存到硬盘里面,导致重启,或断电不会丢失数据;

3、数据量:memcahce一个键存储的数据最大是1M,redis的一个键值,存储的最大数据量是1G的数据量(string类型512M)。

4、灾难恢复:memcache挂掉后,数据不可恢复; redis数据丢失后可以通过aof恢复

5、Redis支持数据的备份,即master-slave模式的数据备份

 

 

 

类型:

链接:http://doc.redisfans.com/

一、String (字符串)

stringredis最基本的类型

redisstring可以包含任何数据。包括jpg图片或者序列化的对象。一个String类型的value最大可以存储512M

 

(1)、Set

描述:用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。

语法:set  键名称  

例子:


attachments-2021-01-hJ3UGlC45ff6b06818ee8.png

 

(2)、Get

描述:用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值不是字符串类型,返回一个错误

语法:get 键值

例子:

attachments-2021-01-3jYTHdL35ff6af1bb8366.png

 

(3)、incr

描述:将 key 中储存的数字值增一。

语法:incr  key

attachments-2021-01-fbNmorP15ff6af2db5e4b.png

 

(4)、incrby

述:将 key 中储存的数字加上指定的增量值。

语法:incrby key 

例子:

attachments-2021-01-AyYQZx765ff6af36c16c5.png

 

 

二:list(列表)

Redis是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),一个列表最多可以包含 232 - 个元素 (4294967295, 每个列表超过40亿个元素)

上进上出,特点:数据先进后出

下进上出队列,特点:数据先进先出

 

(1)、lpush

描述:从链表的头部添加元素

语法:lpush  链表的名称(键的名称)元素

例子:

attachments-2021-01-xDlMfWfT5ff6af4c1fe4b.png

 

(2)、lrange

描述:获取链表里面的元素

语法:lragne 链表的名称  开始下标   结束下标

例子:

attachments-2021-01-c74LbWsX5ff6af5616483.png

注:表里面的元素是序号的(从0开始数),类似于索引数组,-1代表末尾。

 

(3)、rpush

描述:从链表的尾部添加元素

语法:rpush  链表的名称(键的名称) 元素

例子:

attachments-2021-01-RD00F1c75ff6af603fec4.png

 

(4)、lpop

描述:从链表表的头部删除一个元素,返回删除的元素

语法:lpop  链表表的名称

例子:

attachments-2021-01-duWQK3w35ff6af6d2075d.png

 

(5)、ltrim

描述:保留指定范围的元素

语法:ltrim 链表的名称   开始下标    结束下标

例子:

attachments-2021-01-G9qD0pcf5ff6af7710d3c.png


  • 发表于 2021-01-07 14:56
  • 阅读 ( 1002 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
天晓冥
天晓冥

1 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1478 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章