redis简介
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
redis的优势
- 大数据量,高性能
- 灵活的数据模型
- 高可用
- 低成本
redis的劣势
- 无关系:数据之间是无联系的
- 不支持标准的SQL,也没有公认的NoSQL标准
- 没有关系型数据库的约束,大多数也没有索引的概念
- 没有事务,不能依靠实物实现ACID
- 没有丰富的数据类型
redis操作命令
ping
沟通命令,查看状态: ping
返回值: PONG
解释: 输入 ping,redis 给我们返回 PONG,表示 redis 服务运行正常
dbsize
查看当前数据库中 key 的数目:dbsize
返回值:数字,key 的数量
redis 默认使用 16 个库
从 0 到 15。 对数据库个数的修改,可以在 redis.conf 文件中对databases 16进行操作
select index
切换库命令:select index
返回值: ok
flushdb
删除当前库的数据:flushdb
返回值: ok
redis 自带的客户端退出当前 redis 连接: exit 或 quit
redis key命令
keys
语法:keys pattern
作用:查找所有符合模式 pattern 的 key. pattern 可以使用通配符。通配符:
- *: 表示 0-多个字符 ,例如:keys * 查询所有的 key
- ?: 表示单个字符,例如:wo?d , 匹配 word , wood
显示所有的key
使用 * 表示0或多个字符
使用 ? 表示单个字符
exists
语法:exists key [key…]
作用:判断 key 是否存在
返回值:整数,存在 key 返回 1,其他返回 0. 使用多个 key,返回存在的 key 的数量。
检查指定的key是否存在
检查多个key是否存在(存在的显示实际结果,不存在的不显示)
expire
语法:expire key seconds
作用:设置 key 的生存时间,超过时间,key 自动删除。单位是秒。返回值:设置成功返回数字 1, 其他情况是 0
ttl
语法:ttl key
作用:以秒为单位,返回 key 的剩余生存时间(ttl: time to live) 返回值:
● -1 :没有设置 key 的生存时间, key 永不过期
● -2 :key 不存在
● 数字:key 的剩余时间,秒为单位
type
语法:type key
作用:查看 key 所存储值的数据类型返回值:字符串表示的数据类型
● none (key 不存在)
● string (字符串)
● list (列表)
● set (集合)
● zset (有序集)
● hash (哈希表)
查看存储字符串的key