安装:
Redis 有点像一个大Map,根据key value 存储 value 可以放基本类型
基本类型:1)·字符串
2)hash类型
3)·set类型
4)·list类型
5)·sortedset类型 (排序的set)
1)· 字符串类型:
Get xxx 得到ket为xxx的值
Set xxx yyy 设置xxx的值为 yyy
Getset xxx yyy 得到并这只xxx的值为yyy
Del xxx 删除xxx的key 和值
Ince xxx 把xxx的值++ redis 会自动转为int 类型不匹配的话 会报错
如果key的对象不存在初始值为0
Decr xxx 把xxx的值--
Increby xxx value 把xxx的值加value
Decreby xxx value
Append xxx value
回车后显示的是字符数
2)· hash类型:
Hset key field value
设置key 中 field 为value
Hget key field
得到key 中field 的 值
Hmset key field1 value2 field2 value2 … … 设置多个值
Hmget key field1 field2 field3 field4 得到多个值
Hgetall key 获取key中所有的key value值
Hdel key field 删除key 中key为field的 key 值
Hincrby key value field increment 找到key的value增长 increment
Hlen key 获取key中的数量
Hkeys key 获取 hash 中的 keys
3)· set类型:(和java set一样 无序 不允许重复)
Sadd key value1 value2 value3 value4 …
key不存在会创建一个key的对象
Smembers key 通过key得到set类型中的value
Srem key value value2 ….
删除key中某个value
Sismember key value 判断value是不是set中的成员 0 不存在 1 存在
【差集】Sdiff key1 key2 返回key1 中 比key2 多的值 即 key1 中存在 key2中不存在
【交集】sinnner key1 key2 .. 交集 共有的数据
【并集】 sunion key1 key2 …. 返回并集 所有a +b 的数据
scard key 返回 key中有多少值
Srandmember key 返回key中随机几个值 集体看后面有没有count属性没有就一个 【count 】
Sdiffstore destination key1 key2 将key1 与 key2 的差集 存储到destination中
Sinnterstore destination key1 key2 将key1 与 key2 的交集 存储到destination中
Sunionstore destination key1 key2 将key1 与key2 的并集 存储到destination中
4)·sortedset类型:
Zadd key 权重 value1 权重2 value2 .。。。
Zcard key 查看成员数量
Zscore key key2 查看key2 的 权重
Zrange key start end [withscores ] [ limit start offset ]查询 limit 分页查询
Zrem key innerkey 删除key中 innerkey对象和值
Zrevrange key start end 【withscores】
倒叙查看
Zremrangebyrank key start end 排好序后 从start 到end 删除 闭区间
Zremrangebyscore key min max 根据排好序的score 删除 闭区间
Zincreby key 权重 key2 为key2 添加多少权重 排行榜。
Zcount key start end 查看start到end 有多少人 有多少个
Zrank key key2 查看key2 在key中的排名 默认是从小到大
Zrevrank key key2 倒叙查看 默认是从大到小
5)·list类型:
Lpush key value1 value2 value3 …. l代表从左侧压 r 右侧
设置值
Lrange key start end
取值 end 如果为-1 表示查全部
Lpop key 从左边弹出 key
Rpop key 从右边弹出 key
Lpushx key 如果key存在插入 不存在不插入
Rpushx key 从右边
Lrem key count value 删除count个值为value的值
如果count为0 表示删除全部值为value的值
没有rrem命令 想从右边删除 -count 负号
替换:
Lset key index value
插入
linsert key brfore| after target value
在b的后面插入: linsert key after b xxx
a b c d -> a b c xxx d
Rpoplpush source destinnation
从source 的右边弹出一个 到的destinnation的左边
可以完成一个消息队列
全局命令:
Keys 对key的操作 :
• Keys * 查找所有的key
example: keys my* 查找所有myXXXX的key
• Del key1 key2 key3 删除key为keyxxx的对象
• Exists key1 key2 key3 是否存在
• Rename key value 重命名key 为 value
• Expire key value 设置key的逝世时间为value 单位 秒
• Ttl key 查看key的剩余时间
• 没设置逝世时间返回-1
• 设置了超时并且已经过世 返回-2
• Type key 查看key是什么类型的
Ø 移库
Ø 默认有16个库 默认操作在0库 修改配置在redis.conf 下修改
Ø 切换库:
○ Select 库索引 从0开始
○ Move index destination
Flushall 删除 所有 key对象
事务:
开启事务:
Multi 开启事务 开启事务后和mysql一样放到队列中等待执行
Exec 执行事务 并不会像mysql一样 它是能执行的执行 不能执行的不执行
Discard 回滚事务 队列中的都不执行
持久化:
1. RDB 默认就是这种设置 数据多的时候 适合用这种 比较注重结果 可能会丢失数据(时间差内没保存快照) 在某个时间点存 配置 信息在redis.conf 默认是 save 900 1 save 300 10 save 60 10000 意思是 900秒 修改1次 key 保存快照 300秒修改10次key 保存快照 60秒修改10000次key 保存快照
2. AOF 以日志的形式记录,开始Aof会根据日志来保持数据一致 比较注重过程 它会根据日志来保存 默认没开 在redis.conf里配置 appendonly yes
有三种机制 always Everysec No
数据修改就会写如aof文件 每秒同步1次 不会持久化
3. 两种可以同时使用