redis数据在内存中,操作内存的速度远远高于磁盘,并且redis数据最终也可以存储在磁盘上
键值存储数据库 类似字典
Redis服务器与客户端
配置文件 获取配置信息 配置用户密码 常见配置项
键对应操作
keys()
返回所有键
exists(k)
查看键是否存在
type(k)
查看键对应值的类型
expire(k,time)
设置有效期
ttl(k)
查看剩余时间
delete(k)
删除键
5种数据类型·
1 字符串
set(k,v)设置单个
get(k) 获取单个
mset({k:v,k:v}) 设置多个
mget({k,k,k,k}) 获取多个
delete
incr 加1
incrby 加 增量
decr 减1
decrby 减 增量
2 哈希值
hget(name ,key)
获取键对应的值
hset(name,key,value)
添加键值对
hmget(name,[key])
获取列表中字段对应的值
hmset(name,{})
添加多个键值对
hincrby(name,key,value)
字段的值 增加增量
hgetall(name)
所有字段与值
hkeys(name)
所有字段
hvals(name)
所有字段的值
hexists(name,key)
判断字段是否存在
hdel(name,key)
删除字段
hlen(name,key)
返回字段长度
3 列表
lpush(key,v)
开头插入
rpush(key,v)
末尾插入
lpop(k)
开头删除
rpop(k)
末尾删除
lset(k,index,v)
修改指定位置指定元素
linsert(key,after|befo,pivot,value)
在指定位置插入指定元素
lrem(key,count,value)
删除指定个数的指定元素
ltrim(key,start,stop)
把原始内容切片
lrange(key、,strat,end)
返回对应位置范围所有元素
lindex(key,index)
返回对应位置的元素
4 集合 无序不重复
sadd(key,*values)
将多个数据插入集合
srem(key,value)
删除指定value
spop(key)
随机一次
srandmember(key,count)
随机取count个不删除
scard(key)
集合中元素的个数
smembers(key)
返回所有元素
sismember(key,value)
value是否在集合中
sinter({key,key})
返回交集
sinterstore(dest,[key,key])
将返回的交集 存储的集合
sunion([key,key])
返回并集
sunionstore(dest,[key,key])
将返回的并集存储到集合
sdiff([key,key])
返回差集
sdiffstore(dest,[key,key])
将返回差集存储到集合
5 有序集合
zadd(name,{v:score})
添加带有权重的元素
zrem{name,v,v}
从有序集合中移除
zcard(name)
个数
zcount(name,min,max)
权重在min,max之前元素个数
zrange(name,start,stop)
获取指定索引范围元素
zrevrange(name,stra,stop)
逆序获取索引指定元素
zrangebyscore(name,min,max)
获取指定分值对应的元素
zrevrangebyscore(name,max,min)
逆序获取指定分值对应元素
zscore(name,value)
获取value对应的权重
应用
1 Reids作为缓存数据库,缓存Mysql
因为操作mysql效率远远低于redis,第一次获取数据,把mysql中数据放入redis,以后操作redis
真实的评论数据 存储在mysql
每次需要获取评论数据先从reids取,如果redis没有 则从mysql取,取出来放入reids,并且给予有效期,如果reids中直接有,则直接使用redis
2 订阅发布
订阅频道
subscribe 频道名
取消订阅
unsubscribe 频道名
发布消息
publish 频道名 消息