(二)redis API的理解和使用

一、全局命令

  1、keys *      查看所有键           时间复杂度为O(n),线上环境禁止使用

  2、dbsize        查看键总数

  3、rpush       插入一个列表类型的键值对    rpush  mylist  a b c d

  4、exists key     查看键是否存在,如果存在返回1,不存在返回0

  5、del  key [key ...]    删除键,返回成功删除键的个数

  6、expire      设置键过期           expire  hello 10  设置键10s过期  

  7、ttl        返回键的剩余过期时间,大于等于0    -1(没有设置过期时间)  -2(没有这个键)

  8、type key       键的数据结构类型        返回结果为string   list hash  set  zset 如果键不存在返回none

  9、object encoding key  查询内部编码

二、单线程模型

扫描二维码关注公众号,回复: 4640136 查看本文章

  1、内存访问

  2、非阻塞I/O,Redis使用epoll作为I/O多路复用技术的实现,再加上 Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件,不 在网络I/O上浪费过多的时间,如图2-6所示。因为redis采用的是单线程,但是读写操作又是阻塞式的,所以出现I/O多路复用技术,当一个文件处于读写阻塞状态时,不至于其他的读写操作也被阻塞

  3、减少线程的竞争与切换

三、字符串

  1、命令

  set(setnx(键必须不存在   setxx与nx相反   [ex seconds]  [px millisecond]))  get  mset  mget  incr(计数,当key中的值为数值时成功计数)  decr  incrby  decrby  incrbyfloat

  append  strlen(中文占用3个字符)  getset(先设置值,返回历史数值,当键为空的时候,返回nil)  setrange key offeset value(设置指定位置的字符)

  getrange key start end(获取指定位置的字符串)

  2、字符串编码

  int(8个字节的长整形)  embstr(小于等于39个字节的字符串)  raw(大于39个字节的字符串)

  3、使用场景

  缓存  计数  session共享  限速

四、哈希

  1、命令

  

 五、列表

  1、命令

    

  2、内部编码

  ziplist(压缩列表)  linkedlist(链表)  quicklist

  3、使用场景

  消息队列(利用lpush和brpop)

  

六、集合

  1、命令

  

  2、内部编码

  setint(当元素不超过512个且值是整数类型时)  hashtable

  3、适用场景

  

七、有序集合

  1、有序集合、集合和列表之间的异同点

  

  2、命令

  

  3、内部编码

  ziplist(压缩列表):当有序集合的元素个数小于zset-max-ziplistentries配置(默认128个),同时每个元素的值都小于zset-max-ziplist-value配 置(默认64字节)

    skiplist(跳跃表)

  4、适用场景

  各排行榜

八、键管理

  1、重命名

  rename   renamenx  

  2、randomkey(随机返回一个键)  

  3、过期

  expire  expireat(设置秒级过期时间戳)  pexpire(设置秒级过期时间) pexpireat   persist(可以将键的过期时间清除) 

  4、setex(为set+expire的组合)

  5、迁移键

  move  dump+restore  migrate

  6、move、dump+restore和migrate之间的比较

  

  7、遍历键

  keys  scan  hscan  sscan  zscan

  数据库方面的命令

  dbsize  select index(reids默认0-15号数据库,通过select选择)  flushdb(清楚当前数据库)  flushall(清楚所有数据库)

  

  

  

  

    

猜你喜欢

转载自www.cnblogs.com/ffzzcommsoft/p/10113910.html
今日推荐