redis之学习1
Redis 全称remote dictionary server,是一种基于键值对(key-value)的NoSql数据库,redis的值时由string(字符串)、hash(哈希)、list(列表)、set(集合),zset(有序集合)、Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等多种数据库结构和算法组成。由于redis会将所有的数据都存放在内容中,所以他的读写性能非常惊人。Redis还可以将内容的数据利用快照和日志的形式保存在硬盘上,这样在发生类似断点或者机器故障的时候,内存的数据不会丢失。Redis还提供了键过期、发布订阅、事务、流水线、Lua脚本等附加功能。
Redis特性:1.速度快 2.基于键值对的数据结构服务器 3.丰富的功能 4简单稳定 5客户端语言多 6 持久化 ,提供了两种持久化方式(RDB和AOF)7主从赋值 8.高可用和分布式
Redis 可以做什么?
1. 缓存
2. 排行版系统
3. 计数器应用
4. 社交网络
5. 消息队列系统
Redis 借鉴了linux操作系统对于版本号的命名规则:版本号第二位如果奇数,则为非未定版:(例如 2.7、2.9、3.1),如果是偶数,则为稳定版(例如2.6、28、3.0、3.2)。
版本更迭:
2.6,2.8 赋值功能, 3.0支持分布式 3.2 新增了GEO相关功能 4.0 优化之前版本主从切换必然引起圈梁赋值的问题,解决了 bikey造成阻塞问题
全局命令:
1. 查看所有键 keys *
2. 返回当前数据库中的总数 dbsize
3. 检查键是否存在 exists key (返回值:存在返回1 ,不存在返回0)
4. 删除键 del key[key …]
5. 键过期 expire key seconds (返回值: 大于等于0的整数键剩余的过期时间,-1键没设置过期时间 ,-2键不存在)
6. 键的数据结构类型 type
7. 查看内部编码 object encoding k ey
Redis 的五种数据结构:string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)
1.纯内存访问 ,非阻塞I/O,Redis使用epoll 作为I/O多路复用技术,单线程避免线程切换和竞态产生的消耗
单线程,I/O多路复用技术
- 字符串:多用于缓存,计数,session管理,限速
最大值不能超过512MB,内部编码有三种:int 8 字节的长整型 ,embstr:小于等于39字节的字符串。Raw:大于39个字节的字符串。