redis缓存应用(mac安装)常用命令

一、 什么是reids
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。

二、 redis特点

1.支持数据的持久化
2.丰富的数据类型。string(字符串),hash(哈希),list(列表),set(集合)及		zset(sorted set:有序集合)
3.支持数据的备份,即master-slave模式的数据备份
4.Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

三、redis数据类型
1. String(字符串)
string类型是二进制安全的,一个键最大能存储512MB。
2.hash(哈希)
Redis hash是一个string类型的field和value的映射表,特别适合用于存储对象
3.list(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。
4.set(集合)
Redis的Set是string类型的无序不重复集合。
5.zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
zset每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行,从小到大的排序

四、redis其他特性

1.订阅/发布
	发布订阅模式
2.HyperLogLog
	Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
3.事务
	事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。

4.脚本
	通过内嵌支持 Lua 脚本。执行脚本的常用命令为 EVAL。
5.GEO(地理信息定位)功能
	支持存储地理位置信息用来实现诸如附近位置、摇一摇这类依赖于地理位置信息的功能

五、基于redis的常用功能

1.缓存,这是redis主要的应用功能
2.分布式锁,应用比较广泛
3.消息队列,延迟队列,阻塞队列
4.使用set进行交集并集差集的运算

五、redis命令

1.key命令(常用)
	DEL key 该命令用于在 key 存在是删除 key。
	EXISTS key 检查给定 key 是否存在。
	EXPIRE key seconds 为给定 key 设置过期时间。
	PEXPIRE key milliseconds 设置 key 的过期时间亿以毫秒计。
	KEYS pattern 查找所有符合给定模式( pattern)的 key 。
	
2.string命令(常用)
	SET key value 设置指定 key 的值
	GET key 获取指定 key 的值。
	GETRANGE key start end 返回 key 中字符串值的子字符
	GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
	MSET key value [key value ...] 同时设置一个或多个 key-value 对。
	MGET key1 [key2..] 获取所有(一个或多个)给定 key 的值
	INCR key 将 key 中储存的数字值增一。
	INCRBY key increment 将 key 所储存的值加上给定的增量值(increment) 。
	DECR key 将 key 中储存的数字值减一。
	DECRBY key decrement key 所储存的值减去给定的减量值(decrement) 。

	
3.hash 命令(常用)
	HDEL key field2 [field2] 删除一个或多个哈希表字段
	HEXISTS key field 查看哈希表 key 中,指定的字段是否存在。
	HSET key field value 将哈希表 key 中的字段 field 的值设为 value 。
	HGET key field 获取存储在哈希表中指定字段的值
	HGETALL key 获取在哈希表中指定 key 的所有字段和值
	HKEYS key 获取所有哈希表中的字段
	HLEN key 获取哈希表中字段的数量
	HMGET key field1 [field2] 获取所有给定字段的值
	HMSET key field1 value1 [field2 value2 ] 同时将多个 field-value (域-值)对设置到哈希表 key 中。
	HSETNX key field value 只有在字段 field 不存在时,设置哈希表字段的值。
	HVALS key 获取哈希表中所有值

4.list 命令(常用)
	BLPOP key1 [key2 ] timeout 移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
	BRPOP key1 [key2 ] timeout 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
	BRPOPLPUSH source destination timeout 从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
	LINDEX key index 通过索引获取列表中的元素
	LINSERT key BEFORE|AFTER pivot value 在列表的元素前或者后插入元素
	LLEN key 获取列表长度
	LPOP key 移出并获取列表的第一个元素
	LPUSH key value1 [value2] 将一个或多个值插入到列表头部
	LPUSHX key value 将一个或多个值插入到已存在的列表头部
	LRANGE key start stop 获取列表指定范围内的元素
	LREM key count value 移除列表元素
	RPOP key 移除并获取列表最后一个元素

5.set命令(常用)
	SADD key member1 [member2] 向集合添加一个或多个成员
	SCARD key 获取集合的成员数
	SDIFF key1 [key2] 返回给定所有集合的差集
	SINTER key1 [key2] 返回给定所有集合的交集
	SISMEMBER key member 判断 member 元素是否是集合 key 的成员
	SMEMBERS key 返回集合中的所有成员
	SPOP key 移除并返回集合中的一个随机元素
	SRANDMEMBER key [count] 返回集合中一个或多个随机数	
	SREM key member1 [member2] 移除集合中一个或多个成员
	SUNION key1 [key2] 返回所有给定集合的并集

6.zset命令(常用)
	ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的分数
	ZCARD key 获取有序集合的成员数
	ZCOUNT key min max 计算在有序集合中指定区间分数的成员数
	ZINCRBY key increment member 有序集合中对指定成员的分数加上增量 increment
	ZLEXCOUNT key min max 在有序集合中计算指定字典区间内成员数量
	ZRANGE key start stop [WITHSCORES] 通过索引区间返回有序集合成指定区间内的
	ZRANK key member 返回有序集合中指定成员的索引
	ZREM key member [member ...] 移除有序集合中的一个或多个成员
	
	ZREVRANK key member 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
	ZSCORE key member 返回有序集中,成员的分数值

五、redis的部署
1.单节点模式
单节点模式是最简单的Redis模式

2.主从模式
	主从模式就是N个redis实例,可以是1主N从,也可以N主N从(n主n从已经用到了集群模式)。
	优点:备份数据、负载均衡
	确定:主节点挂了之后  不能提供写服务
	特点:
		一个Master可以有多个Slaves,可以是1主N从。
		默认配置下,master节点可以进行读和写,slave节点只能进行读操作,写操作被禁止。
		slave节点挂了不影响其他slave节点的读和master节点的读和写,重新启动后会将数据从master节点同步过来。
		该种模式下,master节点挂了以后,slave不会竞选成为master。	

3.哨兵模式
	在主从模式中,部署一个或多个哨兵节点,当sentinel发现master节点挂了以后,sentinel就会从slave中重新选举一个master
			
	优点:master挂了之后不影响写服务
	缺点:数据量大的时候1主多从模式 每个节点的数据量会很大
	特点:
		sentinel模式是建立在主从模式的基础上。
		当master节点重新启动后,它将不再是master,而是作为slave接收新的master节点的同步数据
		sentinel因为也是一个进程有挂掉的可能,所以sentinel最好配置多个形成一个sentinel集群。
		一个sentinel或sentinel集群可以管理多个主从Redis
		当使用sentinel模式的时候,客户端就不要直接连接Redis,而是连接sentinel的ip和port,由sentinel来提供具体的可提供服务的Redis实现,这样当master节点挂掉以后,sentinel就会感知并将新的master节点提供给使用者。
		Sentinel进程可以通过发布与订阅来自动发现正在监视相同主实例的其他Sentinel。当一个 Sentinel 发现一个新的 Sentinel 时,它会将新的 Sentinel 添加到一个列表中,这个列表保存了 Sentinel 已知的,监视同一个主服务器的所有其他Sentinel。
	
4.集群模式
	数据量过大一个主机放不下的时候,就需要对数据进行分区,将key按照一定的规则进行计算,并将key对应的value分配到指定的Redis实例上,这样的模式简称Redis集群。
	优点:实现数据负载
	缺点:如果没有slave,那么一台机子挂掉后  这台机子将不能提供服务,所以最好使用多主多从
	特点:
		一个 Redis 集群包含 16384 个哈希槽(hash slot),数据库中的每个键都属于这 16384 个哈希槽的其中一个,集群中的每个节点负责处理一部分哈希槽。
		Redis 集群对节点使用了主从复制功能:集群中的每个节点都有 1 个至 N 个复制品(replica), 其中一个复制品为主节点(master), 而其余的 N-1 个复制品为从节点(slave)

六、redis的持久化
redis有两种方式的持久化,aof以及rdb
1.RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。
2.AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小。
3.Redis 还可以同时使用 AOF 持久化和 RDB 持久化。 在这种情况下, 当 Redis 重启时, 它会优先使用 AOF 文件来还原数据集, 因为 AOF 文件保存的数据集通常比 RDB 文件所保存的数据集更完整。
4.也可以不使用持久化功能,数据只在服务器运行时存在
七.redis安装
mac系统:brew install redis

redis-cli

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值