Redis的特点
支持数据持久化:Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
支持数据备份:Redis支持数据的备份,即master-slave模式的数据备份
支持多种数据结构:Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
Linux下安装redis
- 下载redis压缩包
- 解压到 /opt目录 tar -zxvf redis.tar.gz -C /opt
- cd redis
- 安装gcc yum -y install gcc
- make
- make distclean
- make install
redis服务
前台启动 redis-server
后台启动 redis-server &
根据配置文件启动 启动命令 配置文件 &
如果修改了redis的配置文件redis.conf,必须在启动时指定配置文件,否则修改无效!
关闭redis服务 redis-cli shutdown
连接redis redis-cli -p 6379
Redis基本知识
- 测试Redis性能 : redis-benchmark
- 查看状态:ping
- 查看redis服务器的统计信息 info [section]
redis默认使用16个库:0-15
Redis的库和关系型数据库中的数据库实例类似,但又有一些不同,比如redis中各个库不能自定义命名,只能用序号表示,redis中各个库不是完全独立的,使用时最好一个应用使用一个redis实例,不建议一个redis实例中保存多个应用的数据。Redis实例本身所占存储空间其实是非常小的,因此不会造成存储空间的浪费。
切换数据库:select [num]
查看当前数据库中key的数目:dbsize
清空当前库:flushdb
清空所有数据库:flushall
config get * 获得redis的所有配置值 参数信息来自redis.conf 文件的内容
Redis的常用操作命令
keys (查找所有符合模式pattern的key)
- *:表示0或多个字符,例如:keys * 查询所有的key。
- ?:表示单个字符,例如:wo?d , 匹配 word , wood
[] :表示选择[]内的一个字符,例如wo[or]d, 匹配word, wood, 不匹配wold、woord
exists(判断某个key是否存在)
move(移动key到指定的数据库,移动的key在原库被删除)
ttl(查看key的剩余生存时间(ttl: time to live),以秒为单位)
expire(设置key的生存时间,超过时间,key自动删除。单位是秒)
type(查看key所存储值的数据类型)
rename(将key改为名newkey。当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。
当 newkey 已经存在时, RENAME 命令将覆盖旧值)
del(删除存在的key,不存在的key忽略)
Redis的5种数据结构
字符串类型 string
字符串类型是Redis中最基本的数据结构,它能存储任何类型的数据,包括二进制数
据,序列化后的数据,JSON化的对象甚至是一张图片。最大512M。
列表类型 list
Redis列表是简单的字符串列表,按照插入顺序排序,元素可以重复。你可以添加一个元素到列表的头部(左边)或者尾部(右边),底层是个链表结构。
集合类型 set
Redis的Set是string类型的无序无重复集合
哈希类型 hash
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
有序集合类型 zset (sorted set)
Redis 有序集合zset和集合set一样也是string类型元素的集合,且不允许重复的成员。
不同的是zset的每个元素都会关联一个分数(分数可以重复),redis通过分数来为集合中的成员进行从小到大的排序