redis相关知识

redis简介

  • redis是一个基于key_value的存储系统,支持的数据类型很丰富:string、list、set、hash、zset
  • redis是用内存来存储数据,读写效率远远高于数据库;存储在 redis中的数据都是持久化的,断电或者重启后不用担心数据会丢失,redis的存储可以分为三部分:内存存储、磁盘存储、log文件,重启后,redis可以从磁盘重新把数据加载到内存中
  • redis支持主从模式、哨兵模式,可以搭建集群,可以支撑大型的项目
    在项目中,一些常用数据、热点数据存到redis中,用的时候直接从redis内存中去取,不用频繁的从数据库中获取,极大的提高了读取速度、降低服务器的开销

非关系型数据库的类型
redis:基于key-value存储数据库
Hbase:列存储数据库
Mongdb:文档数据库

redis可以干什么?
缓存
秒杀、抢购
排行榜 zset
统计 Hash
消息队列 list

Linux系统下redis的相关命令
string相关命令
set key value 设置键和值
get key 获取键所对应的值
getset key list 获取键对应的所有值
incr key 递增 (value必须是数字)
decr key 递减(value必须是数字)
incrby key num 在键对应的值上加一个具体数值(value必须是数字)
decrby key num 在键对应的值上减一个具体数值(value必须是数字)
del key 删除键
append key value 在键对应的值上追加字符串

hash命令
hset key filed value 添加key中的键值
hget key filed 获取key中的键值对
hmset key filed1 value filed2 value filed3 value 在key集合中添加多个键值
hmget key filed1 filed2 filed3 获取key中指定的键所对应的值
hgetall key 获取key中所有的键值
del key 删除整个key中的所有键值
hdel key filed1 删除key中的某一个键值
hincrby key filed1 num 增加数字(filed1 必须是数字)
hexists key filed1 判断是否存在(1表示存在 0表示不存在)
hlen key 获取key中filed的数量
hkeys key 获取所有的key
hvals key 获得所有的value

list命令
lpush key value1 value2 value3
lrange key 0 -1
lpop key 弹栈顶部
rpop key 弹栈底部
lpushx key value4 先判断是否有key这个集合 有就添加value4 没有就不添加
llen key key集合有几个元素
lrem key count value 删除key集合中count个value count 为正数时 是从左到右开始删 为负数 从右往左删
lset key index value 往key集合中插入元素 index为正数 表示从左到右第index中插入value 为负数则是从右往左第index中插入value
linsert key before/after value1 value 在key集合中的value1前/后插入value值
rpoplpush key1 key2 将key1集合中的底部元素弹栈到key2集合中的顶部

set命令
sadd key value1 value2 value3 添加keyt集合 并加入三个value值
smembers key 查看key结合中的所有元素
sismembers key value 判断key集合中有无value元素 有返回1 没有返回0
sdiff key1 key2 查看集合key1比集合key2多的元素
sinter key1 key2 查看集合key1和key2的交集元素
sunion key1 key2 查看集合key1和可以的并集元素
srandmember key 随机获取key集合中的某一元素
scard key 获取集合key的元素个数
sdiffstore key3 key1 key2 将key1比key2多的元素存储到集合key3中
sunionstore key3 key1 key2 将key1和key2的并集元素存放到key3集合中去

sortedset(zset)命令
zadd key num value1 num value2 num value3 添加数据
zrange key 0 -1 获取key集合的元素及分数从小到大排序
zrevrange key 0 -1 获取key集合的元素及分数 从大到小排序
zrange key 0 -1 withscores 获取key集合的元素及分数 从小到大排序
zrevrange key 0 -1 withscores 获取key集合的元素及分数 从大到小排序
zcard key 获取key集合中元素的个数
zscore key value 获取key元素中value的分数
zrem key value 删除key集合总value的元素
zremrangebyrank key 0 num 默认从小到大删除num+1个元素
zremrangebyscore key min max 删除分数在min与max之间的元素
zremrangebyscore key min max limt num1 num2 查询第num1上页分数在min与max之间的元素 每页显示num2条数据
zcount key min max 获取分数在min和max之间的元素个数

通用key命令
keys pattern 获取key 当pattern为*时 获取所有key
exists key 判断是否存在key 1代表 0代表不存在
del key 删除key
rename key newkey 重命名key为newkey
expire key second 给key设置过期时间
ttl key 获取key所剩的超时时间 如果没有设置超时 返回-1 如果返回-2表示该key已经过期不存在了
type key 获取key的类型 如果不存在返回none
flushall 删除redis中所有的key

redis的移库操作命令
一个redis 有16个数据库 下表0-15 客户端默认连接第0号数据库
select num 选择第num号数据库
move key num 将key移动到第num号数据库

redis发布订阅以及事务命令:(先订阅 后发布)
subscribe CCTV:订阅CCTV这个频道
publish CCTV 天线宝宝 :在CCTV频道中发布天线宝宝节目
multi 开启事务
exec 执行事务
discard 回滚

redis持久化的两种方式
rdb :是redis默认持久化的方式,通过快照的方式对数据进行记录;恢复数据会很快,可最大化redis的性能
aof :不断地对操作日志添加记录,只要有数据有变化,就立刻追加新数据;虽然文件会很庞大,但是redis有优化策略,可以弥补这个不足

消息队列三要素
生产者producer
消费者consumer
消息服务broker

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值