redis数据库了解及常用操作指令

redis缓存数据库

1.了解nosql起源

nosql:非关系型数据库,解决关系型数据库的数据存取瓶颈,大数据量的存储,频繁的查询行为。

没有统一的标准,做不到学了一个nosql,其他的都可以会。

nosql数据大多数基于内存,但是因为内存不可靠,一般都会提供持久化机制,在启动服务端的时候,把持久化数据再次加载到内存。

2.nosql的几种常用的数据库.

KV数据库:key-value键值对数据库,ehcache与项目耦合,memcache独立部署服务器,redis

文档数据库:存的是bson对象数据,mongodb,能够取代mysql,基于内存,数据字段可扩展。尤其适合于数据分析行业。

列式数据库:HBase,大数据平台。尤其适合于超大数据量的存储。

图形数据库:数据关系拓扑图,适合于社交平台,论文系统。

3.redis的使用场景以及带来的相关问题:

使用场景:解决分布式场景下数据共享问题(HttpSession共享);存储临时数据(验证码,文件下载数,用户积分,购物车);存储系统中常用数据缓存(系统用户信息,用户权限列表信息,字典项数据);消息队列(发短信,发邮件等耗时间的操作统统都可以放消息队列进行异步操作)

常用数据的缓存带来的问题:多数据源数据同步问题

​ 方案1:(增删改操作mysql数据库,清理缓存对应的数据;查询操作先查缓存,缓存没有,则查询数据库,把查询结果放缓存)

​ 方案2:(增删改操作mysql数据;查询操作先查缓存,缓存没有,则查询数据库,把查询结果放缓存,放缓存的时候给缓存数据设置有效期)

4.redis的环境搭建

  • 服务端:

    redis-server.exe:加载redis-windows.conf启动redis服务端

    redis-server.exe redis.windows.conf
    

    redis-cli.exe:命令行客户端程序,用来连接服务端,执行指令

    redis-cli.exe -h ip -p port -a password
    

    redis-check-aof.exe:检测aof持久化文件,修复该文件

    check-check-aof.exe --fix aop文件名
    

    redis-check-dump.exe:检测dump持久化文件,修改该文件

    redis-check-dump.exe --fix dump文件名
    

    redis-windows.conf:核心配置文件,配置端口,密码等信息。

    端口号:
    port 6379  
    
    默认数据库个数:
    databases 16
    
    RDB持久化策略:
    save 900 1
    save 300 10
    save 60 10000
    
    RDB持久化文件的名称和目录:
    dbfilename dump.rdb
    dir ./
    
    启动连接密码:
    requirepass foobared
    
    开启aof持久化:
    appendonly yes
    
    aof持久化文件的名称:
    appendfilename "appendonly.aof"
    
    aof文件的重写策略:
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    
  • 桌面可视化客户端程序:

    redis-desktop-manager

5.redis的持久化策略

RDB持久化:存的是kv数据,按照策略保存,风险更大。

AOF持久化:存的是指令,每秒保存一次

6.redis的常用操作指令

redis的针对value的5种数据类型,

key:String

value:string,list,hash,set,zset,使用频率最多的就是String,Hash

相关指令:

string:set/get/incr/decr/incrby/decrby/setex/setnx(分布式锁)/getset(复合指令)

​ set/get

list:适合存储列表性数据,消息队列,红包列表(特征:数据不改变只获取)

​ lpush/lpop/lrange/llen/lindex

hash:适合于存储集合,系统用户集合(手机号做key,用户详情作为value)

​ hset/hget/hdel/hexists/hgetall/hkeys/hvals/hlen/hsetnx

set:无序集合,相对于list来说,数据无序,适合于做集合的交并差

​ sadd/spop/sdiff(差集)/sunion(并集)/sinter(交集)/smembers

zset(sortedSet):适合于数据需要按照指定的字段进行排序的场景。(排名榜单)

​ zadd

​ zscore:取得成绩

​ zrank:升序排序后的排名

​ zrevrank:降序排序后的排名

​ zcount:获取成绩区间的成员个数

​ zrange:获取升序排名区间的成员

​ zrevrange:获取降序排名区间的成员

​ zrangebyscore:获取成绩区间的成员

key相关指令:对key的操作,

​ del/type/keys/ttl/expire/exists

7.redis的javaApi:

jedis:客户端组件

​ new Jedis("",int).auth().api方法调用

8.redis的集群搭建:

  • 客户端的分片集群方案

    服务端启动的多个redis服务之间没有任何关系,是独立的reids服务。

    代码调用者,通过维护多台redis服务的连接。

    缺点:服务器无法横向扩展(代码中维护服务器连接信息;当扩展了新服务器后,原服务器中的数据迁移难)

  • 服务端哨兵集群方案,第四阶段,可以横线扩展

    哨兵服务器(管理其他服务器)

    服务端启动的多个redis服务,服务器之间有数据交互通道。

  • 服务端cluster集群方案。

总结:

5个类型,

String:set/get/setex

hash:hset/hget/hdel

list:lpush/lrange

set:无序集合,交并差,s*

zset:数据排序,z*

ShardedJedisPool

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值