3、redis常用命令及高级应用
键值相关命令
keys 返回满足给定pattern的所有的key
>>> keys *
>>> keys r*
exists 确认一个key是否存在 0不存在 1 存在
>>> exists name
>>> exists age
del 删除一个key 1 成功
>>> del age
expire 设置一个key的过期时间
ttl 获取一个key的有效时长
>>> expire age 10
>>> ttl age
move 将当前数据库的key移转到其他库中
select 选择数据库
>>> select 0
>>> set age 30
>>> get age
>>> move age 1
>>> get age
>>> select 1
>>> get age
persist 移除给定key的过期时间
>>> expire age 3000
>>> ttl age
>>> perisist age
>>> ttl age
randomkey 随机返回key空间的一个key
>>> randomkey
rename 重命名key
>>> rename set2 set_r_2
type 测试key返回值类型
>>> type set2
>>> type set_r_2
服务器相关命令
ping 测试链接是否存活 PONG存活 否则连接失败
>>> ping
echo 在命令行打印一些内容
select 选择数据库【redis数据库编号从0~15】
quit 退出连接
dbsize 返回当前数据库中key的数目
>>> dbsize
>>> select 1
>>> dbsize
info 获取redis服务器相关的信息
>>> info
config get 实时转储收到的请求 、返回相关配置的数据
>>> config get dir
>>> config get *
>>> config get timeout
flushdb 删除当前数据库中的所有key
>>> dbsize
>>> flushdb
>>> dbsize
flushall 删除所有数据库的所有键
事务处理:
支持事务比较简单,redis织女呢个保证一个client发起的事务中的命令
可以连续只写,而中间不会插入其他命令,
当一个茨愣头在一个连接中发出multi命令时,这个连接会进入一个事务上下文,
该连接后续的命令不会立即执行,而是先放到一个队列中,
当只写exec命令时候,redis会顺序只写队列中的所有命令
multi 打开事务上下文
discard 取消事务,事务回滚
exec 执行事务
>>> get age
>>> multi
>>> set age 10
>>> set age 20
>>> exec
>>> getage
注意;当执行事务上下文的时候,假如事务队列里面的命令有错误,执行后会发现事务不能回滚。此为redis的事务处理很简单
乐观锁:基于数据库版本的提供一个version字段,记录数据更新版本。
redis乐观锁 : 假如有一个age的key 打开2个session对age进行赋值吵嘴哦,我们看一下结果如何
1) session 1
>>> get age
>>> watch age //监控age是否修改
>>> multi
2)session 2
>>> set age 30
>>> get age
3) session 1 在开启事务后
>>> set age 40
>>> exec
>>> get age
持久化机制:
Redis支持两种持久化方式:
1、snapshotting(快照)也是默认方式
2、Append-Only(缩写aof)的方式
快照方式;
将内存中的数据以快照的方式写到二进制文件。默认文件名dump.rdb
可以通过配置设置自动做快照持久化的方式.
可以配置redis在n秒内如果超过m个key被修改就自动做快照
save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
save 300 10 #300秒内如果超过10个可以被修改,则发起快照保存
save 60 10000