Redis学习笔记

集群:同一个服务,复制多份

分布式:把不同的业务分不到不同的服务里面  Springcloud微服务

Redis

    NoSql:

     非关系型数据库

     特点:非关系型,高并发

     用途:做缓存,查询速度很快

   Redis

     redis是一个免费开源的,高性能,key-value的nosql.

    特点

         存在内存中,性能高;

         支持持久化,安全;

         支持集群,就可以支持高并发;

         有很多语言的客户端;

         支持的数据类型多

    使用场景

    缓存:以空间换时间:

        什么数据适合做缓存:查询,很少修改的数据,可以作缓存;

       实现思路:发起查询请求的时候,先从缓存中找:有就直接返回;没有就从数据库查,查出后放入缓存,并返回数据;

Redis服务端安装

绿色版本,直接减价

  

常用命令

    String

set key value//将字符串value关联到key

get key       //返回key关联的字符串值

mset //同时设置一个或多个 key-value 对

mget //返回所有(一个或多个)给定 key 的值

Incr  key //将 key 中储存的数字值增1(key不存在,则初始化为0,再加1)

decr key //将 key 中储存的数字值减1(key不存在,则初始化为0,再减1)

incrBy key //自增多少

decrBy key

 

    Key

keys *  //获取所有key列表

del key  //删除key

del key1  key2  //删除多个

expire key xx //设置key的过期时间(xx秒后过期)

ttl key //查看key的过期时间

 

Redis:有16个库,从0--15,默认是0号库,库的选择:select  库号;不同库的数据不影响.

select 0-15 选择库

flushall //清空整个redis服务器数据,所有的数据库全部清空

flushdb  //清除当前库,redis中默认有16个数据库,名称分别为0,1,2.。。15

 

     List

   redis怎么实现栈和队列?

          都用list,控制一边进同一边出就是栈,一边进另一边出就是队列.

list集合可以看成是一个左右排列队列(列表)

lpush key value //将一个或多个值 value 插入到列表 key 的表头(最左边)

rpush key value //将一个或多个值 value 插入到列表 key 的表尾(最右边)

lpop key //移除并返回列表 key 的头(最左边)元素。

rpop key //移除并返回列表 key 的尾(最右边)元素。

lrange key start stop //返回列表 key 中指定区间内的元素,查询所有的stop为-1即可

lrem key count value //根据count值移除列表key中与参数 value 相等的元素

     Set

set集合是一个无序重复值的队列

sadd  key member //将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略

srem key member //移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略

smembers key    //返回集合 key 中的所有成员。

 

    Hash

hash类型类似于php的数组

hset key name value//添加一个name=>value键值对到key这个hash类型

hget key name //获取hash类型的name键对应的值

hmset key name1 key1 name2 key2 //批量添加name=>value键值对到key这个hash类型

hmget key name1 name2//批量获取hash类型的键对应的值

hkeys //返回哈希表 key 中的所有键

hvals //返回哈希表 key 中的所有值

hgetall //返回哈希表 key 中,所有的键和值

我们将user:1(name:zhangsan,age:18,sex:nv)的信息保存在hash表.

 

  事务操作

multi  //标记一个事务块的开始。

exec   //执行所有事务块内的命令。

discard //取消事务,放弃执行事务块内的所有命令。

    Redis的事务在执行exec指令时,才批量执行操作,没有回滚操作

 

   消息的发布和订阅

SUBSCRIBE channel [channel ...] //订阅给定的一个或多个频道的信息。

PUBLISH channel message //将信息 message 发送到指定的频道 channel 。

 

Redis

  Key

      Exists   判断key是否存在

      Set     获取key的值

      Get     获取key的值

      Keys    获取keys

      Del     删除key的值

      Expire   设置key的生存空间

      Ttl      获取key的剩余生存空间

   String

      Set    添加修改

      Get    获取

      Append  追加

      Del    删除

 

List操作

  Lpush   设置列表值

  Lrange   获取list值

  Lrem    删除

  Lset     修改

Sort 排序

    数字,不用加sortingParams

    字母需要加,并且是指assii值排序

Set操作

 Sadd  添加成员

 Srem  删除

 Smember   查看所有成员

Simter     交集

Sinterstore  交集保存到新的set

Sunion   并集

Sinterstore  并集保存到新的set

Sdiff  差集

Sdiffstore  差集保存到新的set  

  Hash

     Hset  设置或者修改

     hgetAll  获取所有

     Hdel    删除

     hincrBy  查询所有的key

     Hkeys    查询说要的value

     Hvalues  查询说要的value

  Jedis

 数字,不用加sortingParams

 字母需要加,并且是指assii值排序

 

Redis 持久化配置

  RDB模式

持久化可以在指定的时间间隔内生成数据集的时间点快照,默认开启改模式

如何关闭 rdb 模式:

save ""

# save 900 1        //至少在900秒的时间段内至少有一次改变存储同步一次

# save xxx

# save 60 10000

 

  AOF追加模式

 AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,默认关闭该模式。

如何开启aof模式:

appendonly yes         //yes 开启,no 关闭

# appendfsync always //每次有新命令时就执行一次fsync 

#这里我们启用 everysec

appendfsync everysec //每秒 fsync 一次

# appendfsync no      //从不fsync(交给操作系统来处理,可能很久才执行一次fsync)

其它的参数请大家看redis.conf配置文件详解

 

淘汰策略

volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰

volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰

    allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰

 当redis存放的数据到达配置的最大内容后,会按照配置淘汰策略进行淘汰.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值