安装
- wget http://download.redis.io/releases/redis-3.0.0.tar.gz 下载
- tar -vxzf redis-3.0.0.tar.gz 解压
- cd redis-3.0.0
- make 编译
- make PREFIX=/usr/local/redis/ install 安装
- cp redis.conf /usr/local/redis 复制文件
- *cd bin
- ./redis-server 前端启动
- vim redis.conf 后端启动 wq保存
- daemonize no改为daemonize yes
- ./bin/redis-server ./redis.conf 启动
- ps -ef | grep -i redis 6379端口
- ./bin/redis-cli shutdown 停止
- ./bin/redis-cli 客户端
- ping 连接测试 pong
- set name imooc 保存 name(key)
- get name 获得
- keys * 获得全部
-
key的长度,和规范,单线程
redis 的五种数据类型
字符串String
- 哈希hash
- 字符串列表list
- 字符串集合set,不可重复,4294个
-
String
incr num 将num的值加一如果不存在,先初始化后加一
- decr num 递减
- incrby num 5 加5
- decrby num 6 减3
-
hash
hset myhash username jack hash键值对的形式加数据
- hmset myhash username root age 21 多个数据录入
- hget myhash username获得
- hmget myhash username age获得多个
- hgetall myhash 获得所有
- hdel myhash2 username age删除
- del myhash2删除集合
- hincrby myhash age 5加五
- hexists myhash username 判断存在否返回 0,1
- hlen myhash 长度
- hkeys myhash 所有key
-
list
arraylist linkedlist
- lpush mylist a b c 左端添加
- rpush mylist 1 2 3 右端添加
- lrange mylist 0 5 分段查看 0 -2也可以
- lpop mylist 弹出左边
- rpop mylist 淡出右边
- lpushx mylist x 向mylist添加,如果mylist不存在不添加
- lrem mylist 2 3 删除两个3, -2 3 从尾部删除2个三,0 2 删除所有的2
- lset mylist 0 2指定位置添加
- linsert mylist defore b 11指定元素位置前添加
- linsert mylist after b 11指定元素位置后添加
rpoplpush mylist mylist2将mylist的元素弹出一个加到mylist2(消息队列)
set(记录ip ,记录某个商品的购买记录,)
sadd myset a b c添加
- srem myset a b 删除
- smembers myset 查看
- sismember myset a 查看是否存在
- adiff myset1 myset2 查看差集
- sinter myset1 myset2 查看交集
- sunion myset1 myset2 查看并集
- scard myset 查看长度
- srandmenber myset 随机返回一个数
- sdiffstore myset1 myset2 myset1 将1和2相差的值加到1
- sinterstore myset1 myset2 myset1 将1和2交集的值加到1
sunionstore myset1 myset2 myset1 将1和2并集的值加到1
sorted-set有序,分数排序 游戏积分排名,微博热点,索引数据
zadd mysort 70 zz 80 ls 90 ww 添加
- zscore mysort zs 获得分数
- zcard mysore 获得数量
- zrem mysort tom ww 删除
- zrange mysort 0 -1 withsores 查看数据,withsores带不带分数
- zrevange mysore 0 -1 withsores 降序
- zremrangebyrank mysort 0 4按照范围删除
- zremrangebyscore mysort 80 100按照分数范围删除
- zrangebyscore mysore 0 100 withsores limit 0 2查看指定范围的数据切带分数和limit
- zincrby mysort 3 ls给指定对象分数加3
-
通用操作
key * 获得所有
- key my?查看my匹配的key
- del my1 删除
- exists my1 判断是否存在
- get company 获取
- rename company newcompany 重命名
- expire newpany 1000 过期时间1000秒
- ttl newcompany查看过期时间
-
特性
多数据库,最多16个数据库
- select 1(0到15)连接1号数据库
-
事务
multi exec discard
- multi开启
- exec提交
- discard回滚
- 持久化
- RDB:指定时间间隔,将内存数据写入硬盘
- AOF:日志记录所有的操作
-
高级用法
一致性hash算法,解决服务器数量变化的问题
- 关键词,环状结构,顺时针,虚拟节点
- 单线程-多路复用IO模型