Redis简介
Remote DIctionary Server(Redis) 是一个key-value存储系统。
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。
Ubuntu安装Redis
sudo apt-get install redis-server
停止服务
service redis stop
启动服务
service redis start
启动服务端
redis-server
启动客户端
redis-cli
首先启用服务端才能启用客户端
配置项目说明
设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
databases 16
绑定的主机地址
bind 127.0.0.1
绑定的主机端口
port 6379
指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
save <seconds><changes>
Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
指定本地数据库文件名,默认值为dump.rdb
dbfilename dump.rdb
指定本地数据库存放目录
dir ./
设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭
requirepass foobared
设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步
slaveof <masterip><masterport>
当master服务设置了密码保护时,slav服务连接master的密码
masterauth <master-password>
Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
daemonize no
当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
timeout 300
redis5种基本数据类型
字符串string
哈希hash
列表list
集合set
有序集合zset
指令
键的操作
key pattern
查找键
type key
查看key对应的value类型
exits key
判断键是否存在, 存在返回1 否则0
del key
删除键及对应的值
设置过期时间,以秒为单位
创建时没有设置过期时间则一直存在,直到使用使用DEL移除
EXPIRE key seconds
查看有效时间,以秒为单位
TTL key
1 ,String类型
set key value
设置键值
mset key value key1 value key2 value …
设置多个键值
setex key seconds value
设置键值及过期时间 seconds为时间毫秒为单位
ttl key
查看键剩余时间,如果过期了则显示 -2
strlen key
查看值的长度
get key
查看键的值
mget key key1 key2..
查看多个键的值.
2,list类型
lpush key value左边插入元素
rpush key value 右边插入元素
lpop key 移出并返回list中第一个元素
rpop key 移出并返回list中最后一个元素
linsert key before|after poivot value
在列表中一个元素(poivot)前(before)或后(after)插入新元素
lrange key star end 查看key列表中索引之内的元素
lset key index value 设定指定索引元素值
lndex key value 根据指定索引查看元素
3, hash类型
存储的格式为键值对
hset key field vaule 设置键值
hmset key field vaule field1 vaule.. 设置多个属性
hgetall key 获取所有字段,值
hkeys key 获取所有字段
hvals key 获取所有值
hexists key field 判断属性是否存在
hdel key field field1 field2..删除属性及值
hlen key 返回包含属性的个数
hstrlen key field 返回值字符串的长度
4,set类型
添加元素
SADD key member [member ...]
删除元素
SPOP key member
判断元素是否在集合中
SISMEMBER key member
获取
返回key集合所有的元素
SMEMBERS key
返回集合元素个数
SCARD key
其它
求多个集合的交集
SINTER key [key ...]
求某集合与其它集合的差集
SDIFF key [key ...]
求多个集合的合集
SUNION key key1 key2…
5,zset类型
元素为string类型
元素具有唯一性,不重复
每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序
元素的score可以相同
添加
ZADD key score member [score member ...]
返回元素个数
ZCARD key
返回有序集key中,成员member的score值
ZSCORE key member
返回指定范围内的元素:根据排序之后索引位置的元素
ZRANGE key start stop
返回有序集key中,score值在min和max之间的成员
ZCOUNT key min max