Redis

判断某个进程有没有在后台启动:

Redis 默认装载 16 个数据库 : 0-15

select index  -- 切换数据库。

dbsize  -- 查看当前数据库 key 的数量。

flushdb -- 清空当前库; flushall --- 清空所有数据库。

expire key 秒钟,为给定的 key 设置过期时间。ttl key : 查看还有多少秒过期,-1 表示永不过期,-2 表示已过期

Redis 命令大全 :http://redisdoc.com/

缓存过期策略配置:

 

1、启动 Redis数据库: redis--redis的安装文件夹。

 用拷贝的配置文件启动Redis

[root@localhost redis]# ./bin/redis-server ./redis.conf 

2、我们通过shutdown命令来停止redis服务的运行:

[root@localhost redis]# ./bin/redis-cli shutdown。

3、本地连接:[root@localhost redis]# ./bin/redis-cli

4、常用命令:

del name;keys *

通过del删除key,keys  * 显示所有keys

5、String: 二进制安全的,存入和获取的数据相同。Value最多可以容纳的数据长度是512M

getset name open1111  --- 返回旧值,设置新值。

ncr 自增:

假如没有定义 则默认0,假如非数值类型 则报错

127.0.0.1:6379> incr n

(integer) 1

127.0.0.1:6379> get n

"1"

自减 decr ;同自增,默认是 0。

incrby 指定增量值--incrby n3 8   decrby 指定减量值 -- decrby n3 5

append 追加字符串  假如没定义 直接赋值。

strlen  -- 字符串长度  strlen key

getrange / setrange

setex (set with expire) 键秒值,setex k4 10 v4

setnx (set if not exist)

mset / mget / msetnx   ---- mset k1 v1 k2 v2 k3 v3

6. hash

定义h1 以及username和password字段 值分别是java1234 123456

hset h1 username java1234; hset h1 password 123456。

hget h1 username; hget h1 password。

hmset h2 username open1111 password 23456

hmget h2 username ; hmget h2 password ; hmget h2 username password

hdel删除属性:可以一次删除一个或者多个

hdel h2 username password

hexists判断字段是否存在 1表示存在 0表示不存在 : hexists h1 age

hlen获取hash属性个数 ; hkeys获取所有属性名称 ; hvals获取所有属性值。

7、存储 List:

lpush 方式添加: 从左边开始添加

lpush l1 a b c d

lrange 获取指定方位的集合元素: 从第1个开始 到倒数第一个 也就是最后一个 也就是 所有数据

rpush 从右端开始添加(一般人比较习惯这种方式)

lpop 左侧弹出集合元素 ; rpop 右侧弹出集合元素 lpop l1 -- rpop l1  每次弹出一个元素。

llen查看元素个数 llen l1.

lrem 从指定方向删除指定个数的指定元素:

从左边开始删除2个1:lrem l3 2 1   -----   从右边开始删除2个3 : lrem l3 -2 3   --  删除所有2  : lrem l3 0 2

lset 设置集合指定索引的值 (索引从0开始): lset l1 3 xxxx

linsert 在集合里插入指定元素。

8、存储 Set : 和List类型不同的是,Set集合中不允许出现重复的元素。

sadd key member [member ...]  添加set元素。

smembers key  查看指定key集合元素。

srem key member [member ...]   删除元素

sismember key member  判断某个元素是否存在 返回1 表示存在 返回0表示不存在

sdiff计算差集

sinter计算交集

sunion计算并集

scard计算元素总数

srandmember 随机取一个元素

sdiffstore 把差集结果存储到新集合中

sinterstore 把交集结果存储到新集合中

sunionstore把并集结果存储到新集合中

9、存储 Sorted-Set : Sorted-Set中的成员在集合中的位置是有序的

zadd 添加元素 里面包括评分和值 : zadd sort1 5 a 4 b 6 c  集合里的排序是根据评分从小到大排序的

zrange是查找元素 -1代表是最后一个 zrange sort1 0 -1

通过zscore 获取b的评分 : zscore sort1 b

删除元素zrem  : zrem sort1 b

zcard 查看集合里的元素个数   

withscores  把评分也显示出来 -- zrange sort1 0 -1 withscores 

zcount 查找指定评分范围的元素个数 : zcount sort1 20 23

10、通用Key的操作:

查找所有以s开头的key : keys s*

del删除key : del n2 n3 nn

exists判断key是否存在 1表示存在  0表示不存在 : exists n2

rename对key重命名  : rename n n2

type key  : 返回 key 的类型。

expire 设置n2 有效时间 : expire n2 120

/******************************************************************

Redis的持久化:

1、RDB 方式: <手动命令: save>

RDB方式 Redis是默认支持的,优势:只有一个文件,时间间隔的数据,可以归档为一个文件,方便压缩转移(就一个文件)。

劣势:如果宕机,数据损失比较大,因为它是没一个时间段进行持久化操作的。

[root@localhost redis]# vi redis.conf 

这里save 900 1 表示 每900秒内至少有1个kery发生变化,就持久化;

save 300 10表示 每300秒内至少有10个key发生变化,就持久化;

save 60 10000表示 每60秒内至少有10000个key发生变化,就持久化。

这里有个dbfilename配置 是 保存的持久化的文件名 默认是dump.rdb

dir ./ 表示文件存储路径是当前路径;

再启动:

总结:平时我们可以定期把rdb文件备份到指定地方 需要恢复的时候 直接把rdb搞到redis下即可。

2、AOF 方式:

AOF 和 RBD 可以共存,Redis 启动时,加载 aof 文件,加载失败(文件出问题),启动失败。

清除aof文件中的垃圾信息:

一倍:100%。

优势:安全性相对RDB方式高很多; 劣势:效率相对RDB方式低很多;

appendonly no默认关闭aof方式 我们修改成yes 就开启

下面那个是默认的aof文件名

这里是三种同步策略:

always 是 只要发生修改,立即同步 (推荐实用 安全性最高)

everysec 是 每秒同步一次

no是不同步 

//**************************************************************************

Redis 的事务:

set blance 100 ;  set debt 0

//**************************************************************************

Redis 集群:

哨兵模式:反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换成主库。

我们只需要连接集群中的任意一个节点,就可以获取到其他节点的数据。

Redis 集群没有并使用传统的一致性哈希来分配数据,而是采用另外一种叫做哈希槽 (hash slot)的方式来分配的。redis cluster 默认分配了 16384 个slot,当我们set一个key 时,会用CRC16算法来取模得到所属的slot,然后将这个key 分到哈希槽区间的节点上,具体算法就是:CRC16(key) % 16384。

所以,我们假设现在有3个节点已经组成了集群,分别是:A, B, C 三个节点,它们可以是一台机器上的三个端口,也可以是三台不同的服务器。那么,采用哈希槽 (hash slot)的方式来分配16384个slot 的话,它们三个节点分别承担的slot 区间是:

节点A覆盖0-5460;

节点B覆盖5461-10922;

节点C覆盖10923-16383.

那么,现在我想设置一个key ,比如叫my_name:

set my_name wind

按照redis cluster的哈希槽算法:CRC16(‘my_name’)%16384 = 2412。 那么就会把这个key 的存储分配到 A 上了。

集群有ABC三个主节点, 如果这3个节点都没有加入从节点,如果B挂掉了,我们就无法访问整个集群了。A和C的slot也无法访问。

Redis Cluster主从模式:

edis cluster 为了保证数据的高可用性,加入了主从模式,一个主节点对应一个或多个从节点,主节点提供数据存取,从节点则是从主节点拉取数据备份,当这个主节点挂掉后,就会有这个从节点选取一个来充当主节点,从而保证集群不会挂掉。

单机集群也可以多机集群:

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值