一、Redis快速入门

一、Redis是什么

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

  1. Redis软件安装在磁盘;
  2. Redis数据存储在内存;

二、快速理解Redis的使用

Redis是一种键值对(Key-Value)高性能缓存数据库,支持string、hash、list、set、zset类型存储。
就像JAVA的map键值对差不多,例如:

Map<String,String> map = new HashMap<>();
map.put("name","zhangsan");
map.get("name");

比如说,数据库有一张Order订单表,主键是orderid

orderidordertimeordermoneyorderstatus
12019-10-9 08:18:11120
22019-10-9 08:28:22120
32019-10-9 08:48:4350

使用Redis如何存储数据呢?
Key:使用业务主键orderid:1
Value:{orderid:1,ordertime:2019-10-9 08:18:11,ordermoney:12}
存入Redis: set orderid:1 {orderid:1,ordertime:2019-10-9 08:18:11,ordermoney:12}

Redis命令参考
http://redisdoc.com/

三、Redis解决了什么问题

在这里插入图片描述
先从Redis缓存里查询数据,如果没有再到Mysql数据库里查询。

四、Redis特性

  1. 速度快
  2. 键值对的数据结构服务器
  3. 丰富的功能
  4. 简单稳定
  5. 持久化
  6. 主从复制
  7. 高可用和分布式转移
  8. 客户端语言多

五、Redis配置、启动、操作、关闭

可执行文件作用
redis-server启动redis
redis-cliredis命令行客户端
redis-benchmark基准测试工具
redis-check-aofAOF持久化文件检测和修复工具
redis-check-dumpRDB持久化文件检测和修复工具
redis-sentinel启动哨兵
redis-tribcluster集群构建工具

启动Redis
./redis-server redis.conf &
连接Redis
./redis-cli -h 192.168.44.101 -p 6379 -a 123456
关闭Reids
./redis-cli -h 192.168.44.101 -p 6379 -a 123456 shutdown
操作Redis

select 0 //默认是0数据库,默认16个数据库,通过select切换数据库
flushall //不建议使用,清空所有的库


set age 23 ex 10 //10秒失效
get age //获取age值,存在返回value,不存在返回nil
ttl age //查询当前age的剩余时间
setnx name zhangsan //不存在键name时,返回1设置成功,存在返回0设置失败
mset age 13 name lisi sex boy //批量插入
mget country city address //批量获取


incr count //整数自增+1
decr count //整数自减-1
incrby count 2 //整数自增+2
decrby count 2 //整数自减-2
incrbyfloat count 1.1 //浮点数自增+1.1
decrbyfloat count 1.1 //浮点数自减-1.1

set name hello; append name world //追加值
set name hello; strlen name;//统计字符串长度,中文占三个字节
set name helloworld;getrange name 2 4 //截取字符串,返回llo


/     HASH    ///
hmset user:1 name zhangsan age 18 //hash存储
hgetall user:1 //获取hash指定键的所有值
hset user:1 age 19//可以修改字段值
hincrby user:1 age 1//年龄+1
hincrbyfloat user:1 number 1.1 //浮点型+1.1
hdel user:1 age //删除属性
hexists user:1 name //是否存在name,存在返回1,不存在返回0
hkeys user:1 //返回所有的key
hvals user:1 //返回所有的值

/     List    ///
lpush user:1 d //从左插入
rpush user:1 d //从右插入
lpop user:1 d //从左取值
rpop user:1 d //从右取值
lrange user:1 0 -1 //从左到右全部取出


/     set    ///
//保存多元素,与列表不一样的是不允许有重复元素,且集合是无序,一个集合
//最多可以保存2的32次方减1,除了支持增删改查,还支持集合交集、并集、差集
exists user //检查user键值是否存在
sadd user a b c //向user插入3个元素,返回3
sadd user a b //若再加入相同的元素,则重复无效,返回0
smembers user //获取user所有的元素,返回结果无序

srem user a //返回1,删除a元素

scard user //计算元素个数,返回2

sinter user:1:fav user:2:fav //计算共同爱好




/     zset    ///
//有序集合,常用于排行榜,不能有重复的成员
zadd user:1:zan 100 zhangsan //插入点赞数,返回操作成果数
zadd user:1 nx 100 zhangsan //键user:1必须不存在,主要用于添加
zadd user:1 xx incr 200 zhangsan //键user:1必须存在,主要用于修改,此时为300
zadd user:1 xx ch incr-299 zhangsan //返回结果1,300-299=1

zrange user:1 0 -1 withscores //查看点赞分数与成员名

zcard user:1 //计算成员个数

zrank user:1 zhangsan //正排序,返回名次 从0开始
zrevrank user:1 zhangsan //反排序,返回名次 从0开始

六、Redis全局命令

1. 查看所有键
keys * set hello world set user shangsan //不建议这么查,慢查询
2. 键总数
dbsize //如果存在大量键,线上禁止使用此指令
3. 检查键是否存在
exists key //存在返回1,不存在返回0
4. 删除键
del key //del hello user,返回删除键个数,如果键不存在,返回0
5. 键过期
expire key seconds //set name test expire name 10,表示10秒过期
ttl key //查看剩余的过期时间
6. 键的数据结构类型
type key //返回key的类型,键不存在返回none

七、重大版本

  1. 版本号第二位为奇数,为非稳定版本(2.7,、2.9、3.1)
  2. 第二位为偶数,为稳定版本(2.6、2.8、3.0)
  3. 当前技术版本是下一个稳定版本的开发版本,例如2.9是3.0的开发版本
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值