一:全局命令
1,查看所有键: keys * ,时间复杂度 O(n)
2,键总数: dbsize ,时间复杂度是 O(1)
3,检查键是否存在:exists key ,存在返回1,否则返回0
4,删除键: del key ,成功则返回删除键的个数,否则0。支持删除多个键
5,键过期: expire key seconds
ttl 命令返回键的剩余过期时间,有三种返回值
大于等于0的整数:键剩余的过期时间。
-1:键没设置过期时间
-2:键不存在
6,键的数据结构类型:type key。如果键不存在,则返回none
二:数据结构和对应的内部编码
1,String: raw,int , embstr
2,hash: hashtable,ziplist
3:list:linkedlist,ziplist
4:set:hashtable,intset
5:zset:skiplist,ziplist
设计的好处:
1:可以改进内部编码,对外的数据结构和命令没有影响
2:多种内部编码实现可以在不同场景下发挥各自优势,例如 ziplist 比较节省内存,但列表元素多时性能会下降,这时Redis会根据配置选项将列表类型内存实现转换为linkedlist
三:单线程架构
Redis使用单线程架构和IO多路复用模型来实现高性能服务
优势:
1,纯内存访问,redis 将所有数据放在内存中,内存的响应时长约为100纳秒。这也是red is达到每秒万级别访问的重要基础
2,非阻塞IO,redis 使用 epoll 作为 IO多路复用技术的实现,再加上Redis自身的事件处理模型将epoll 中的连接,读写,关闭 都转换为事件,不在网络IO上浪费时间
3,单线程避免了线程切换和竞态产生的消耗
四:5种数据结构
String
常用命令
1,设置值:set key value [ex seconds] [px milliseconds] [nx | xx]
setex,setnx,sexxx,set px
具体使用案例可参考:
http://doc.redisfans.com/string/set.html