Redis介绍:
C语言开发、单线程操作、高性能、键值对、可持久化的数据库。
Redis采用redisObject结构来统一五种数据类型,redisObject是五种类型的父类,可以在函数间传递时隐藏具体的类型信息。这样所有的数据类型就都可以以相同的形式在函数间传递而不用使用特定的类型结构。同时,为了识别不同的数据类型,redisObjec中定义了type和encoding字段对不同的数据类型加以区别。
持久化文件:dump.rdb
Redis持久化机制:
1:RDB:默认方式,不需要配置。间隔一段时间,检测key发生变化,然后持久化数据,对服务器性能影响小,推荐使用
save 900 1 -- 900秒后,如果有1个命令操作,就持久化
save 300 10 -- 300秒后,如果有10个命令操作,就持久化
save 10 1000 -- 10秒后,如果有1000个命令操作,就持久化
2:AOF:每一次命令操作后,持久化数据

数据类型:

String类型:
value可以是String类型,也可以是数字类型;String类型在redis内部存储默认就是一个字符串,当遇到incr、decr等操作就会转换成数值型进行计算,此时redisObject的encoding值为int。
操作:
存储:set key value
获取:get key
删除:del key
获取字符串长度
往字符串append内容
设置和获取字符串的某一段内容
设置及获取字符串的某一位(bit)
批量设置一系列字符串的内容

Hash类型:
Hash是最接近关系型数据库结构的数据类型,可以将数据库中的一条记录或一个对象转换为hashmap存放在redis中
Hash是一个string类型的field、value的映射表。适合存储对象。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。Hash结构还可以使你像在数据库中Update一个属性一样只修改某一项属性值。
操作:
存储:hset key field1 value
获取:hget key field
获取所有fied和value: hgetall key
删除:hdel key field

List类型:
列表,数据结构是双向链表,可以存储列表结构的数据,List另一个应用就是消息队列。Redis还提供了操作Lists中某一段的api,你可以直接查询,删除Lists中某一段的元素。
操作:
存储:
lpush key value -- 将元素加入列表左侧
rpush key value -- 将元素加入列表右侧
获取:
lrange key start end -- 范围获取(案例:获取全部 lrange mylist 0 -1)
lpop key -- 从列表左侧获取一个元素并删除
rpop key -- 从列表右侧获取一个元素并删除

set类型:
集合,和List的区别是Set元素无序且不可重复;可以获取集合间交际、并集、差集、补集等操作
Set是Hash Table,相同的对象内容只能在Set中存在一次,后面在添加的对象内容会覆盖已经存在Set中的对象内容
比如在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。Redis还为集合提供了求交集、并集、差集等操作,可以非常方便的实现如共同关注、共同喜好、二度好友等功能,对上面的所有集合操作,你还可以使用不同的命令选择将结果返回给客户端还是存集到一个新的集合中。

Zset类型:
有序集合,在set的基础上增加一个顺序属性,比如一个存储全班同学成绩的Sorted Sets,其集合value可以是同学的学号,而score就可以是其考试得分,这样在数据插入集合的时候,就已经进行了天然的排序。
场景:排行榜、处理过期项目:如果有新数据添加时,我们把它加到有序集合中,用时间做排序。开一个服务定时查询,取前十项,时间过期就删除数据。

操作:
存储:zadd key score value -- score:分数,按分数排序
获取:zrange key start end -- zrange mysortset 0 -1 withscores 获取集合,并带排序
删除:zrem key value

最新文章

  1. Python如何规定对方输入的数字必须是整数?
  2. Android权限安全(10)应用与设备绑定
  3. Struts2的国际化
  4. 源码编译安装 PHP5.5.0,解决curl_exec访问HTTPS返回502错误的问题(修改PATH路径)
  5. 【POJ 3009 Curling2.0 迷宫寻径 DFS】
  6. stm32之watchdog
  7. __doPostBack 未生成
  8. Eclipse: eclipse文本文件编码格式更改(GBK——UTF-8)
  9. Linux:alias永久生效
  10. MongoDB副本集功能及节点属性梳理
  11. 网络七层模型及TCP、UDP,一次HTTP请求都发生了什么
  12. epoll的ET和LT模式
  13. sitecore系列教程之Sitecore个性化-体验概况概述
  14. MYSQL查询优化:使用索引
  15. JS--我发现,原来你是这样的JS(引用类型不简单[上篇],且听我娓娓道来)
  16. linux命令(45):去掉 所有文件中的空行
  17. CDOJ--1141
  18. SPSS学习系列之SPSS Statistics(简称SPSS)是什么?
  19. Centos7单机部署ELK
  20. JavaScript实现网页安全登录(转)

热门文章

  1. jquery实现移动端页面加载后,向上滚动指定距离无效引起的探索
  2. Python 文件readlines()方法
  3. POJ-2661Factstone Benchmark
  4. Java的POJO和JavaBean的区别
  5. java截取字符串中的最后几个字符
  6. MongoDB官方下载安装设置配置文件指定端口号
  7. Zookeeper的安装与配置、使用
  8. 打开centos7图形化窗口
  9. Delphi - DateTimePicker控件日期格式
  10. .NET Core RabbitMQ探索(2)——RabbitMQ的Exchange