Redis 基础知识

1. 简介:

Redis是Remote Dictionary Server的简写,它是一种key-value形式的NoSql内存数据库,单线程架构,数据存放内存,故读写速度性能非常好;当然也支持内存中数据以快照和日志形式持久化到硬盘,从而在发生异常情况下数据也不会丢失。

特点:A. 性能高,速度快:读写性能能达到10w/s;

   B. 丰富的数据结构:如字符串、哈希、列表、集合、有序集合等;

   C. 丰富的特性:键过期实现定时缓存、发布订阅实现消息队列、事务功能、管道实现批量处理命令等;

   D. 丰富的客户端:主流的开发语言都接入了redis

应有场景:A. 缓存:能够提升网站访问速度,大大降低数据库的压力;

     B. 排行榜:有序集合机构实现复杂排行;

     C. 计数器:用incr命令实现,适用于商品浏览量及视频播放量等;

     D. 分布式会话:集群模式下,用redis搭建session服务;

     E. 分布式锁:用setnx实现,适合并发访问高(全局ID、秒杀)的情况,并发不高可用数据库悲观锁和乐观锁控制;

     F. 社交网络:用哈希或集合等数据结构实现,适合点赞等;

       G. 最新列表:lpush + ltrim来实现

       H. 消息系统:适合简单的消息队列,注意:不推荐使用,一致性等问题多

2. 常用操作命令

(1) 管理命令

  A. 启动:redis-server [--port 6379] | redis-server [../redis.conf]

  B. 连接:redis-cli -h 127.0.0.1 -p 6379 [-c]

  C. 停止:redis-cli shutdown | kill redis-pid

(2) key命令

  A. keys patten:*是通配符,代表任意字符,该命令在生产环境不建议使用;

  B. del key [key ...]:删除键,可以同时删除多个;

  C. type key:查询键类型;

  D. expire key seconds:设置过期时间,秒级别;

  E. ttl key:查询key的生命周期,秒级别,-1代表永不过期;

(3)  string命令

  A. set key value:存放键值;

  B. get key:获取键值;

  C. mset key value [key1 value1 ..]:批量存放键值;

     D. mget key [key1 ...]:批量获取键值

(4) set命令:集合是无需且不可重复的

(5) sort set命令:有序集合是散列表和跳跃表实现的,读取中间的元素较快,比列表占内存

(6) list命令:列表是有序且可重复的,使用双向链表实现,两头快,中间慢

(7) hash命令:散列是字典结构形式

3. 

可参考:Redis中方官网

相关推荐