redis
1。redis的一下命令
默认有16个数据库
切换数据库:select 3【第三个3数据库】
查看数据库大小:DBSIZE
keys * 查看数据库所有的key
清除当前数据库:flushdb
清除所有数据库的内容:flushall
是否存在:EXISTS name(判断name键是否存在)
设置过期时间:expire name 10
ttl name(查看name还有多久过期)
type name查看name是什么类型
redis是单线程的。
2。redis的五大数据类型:String,LIst,Set,Hash,Zset,三种特殊数据类型:geospatial(地理空间),hyperloglog,bitmaps
3。redis String类型讲解:追加字符串
append name "hello"(在name值里追加了hello,如果不存在就新加)
strlen name (name 的长度)
字符串数字类型增加1 : incr views
减少1:decr views
增长步长:incrby views 10
decrby views 5
字符串截取:getrange name 0 3
getrange name 0 -1(全部长度字符串)
字符串替换:setrange name 1 xx
setex(set with expire)设置过期时间
setnx(set if not exist)不存在再设置
同时设置多个值:mset k1 v1 k2 v2 k3 v3
mget k1 k2 k3
msetnx k1 v1 k4 v4(失败,原子性操作,要么一起成功,要么一起失败】)
4。redis事务本质:一组命令的集合,一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行!一次性,顺序性,排他性!执行一些列的命令。
multi 开启事务。。。。discard(取消事务)。。。exec触发执行事务中的命令
5.悲观锁:无论做什么都加锁
乐观锁:使用watch实现乐观锁
6.Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失,所以Redis提供了持久化功能!
持久化:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。
redis的持久化rdb(默认是rbd)和aof
7.redis主从复制:写操作只能在主节点。
哨兵模式(自动选举老大的模式)
8.Redis缓存穿透和雪崩
http://baijiahao.baidu.com/s?id=1655304940308056733&wfr=spider&for=pc