redis缓存详解(从入门到精通) 您所在的位置:网站首页 Redis刷新缓存要加锁吗 redis缓存详解(从入门到精通)

redis缓存详解(从入门到精通)

2024-05-27 22:55| 来源: 网络整理| 查看: 265

引言

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

数据结构

Redis是基于内存的数据储存服务,它支持key-value查询操作,value存在以下五种数据类型

字符串(strings) 散列(hashes) 表(lists) 集合(sets) 有序集合(sorted sets) redis安装 下载

地址:http://download.redis.io/releases/

解压 ##解压 tar -xzvf redis-6.0.6.tar.gz

编译

进入解压的目录,运行make命令

##使用gcc编译,gcc版本需要大于5.0,查看 gcc版本:gcc -v make ##若需要指定安装目录,则加PREFIX选项 make install PREFIX=/usr/local/redis ##如果gcc小于5,需要先升级gcc,依次运行以下命令 yum install centos-release-scl yum install devtoolset-7-gcc* scl enable devtoolset-7 bash 常用命令 String

Redis 字符串数据类型的相关命令用于管理 redis 字符串值,常用操作命令如下:

set key value ##设置key的值为value mset key1 value1 key2 value2 [key value] ##同里设置多个 get key ##获取key的value值 mget key1 key2 key3 [key] ##同里获取多个key的value值 del key ##删除key,跟value类型无关 incr key ##对num型的key进行++1操作,decr减1 incrby key incrememt ##对num型的key加上increment,decrby减n append key value ##将value的值进行字符串连接操作,加在原value末尾 strlen key ##获取value字符串长度 setnx key value ##只有key不存在时设置key的值 exists key1 key2 key3 ##判断某个key是否存在,跟value类型无关,返回存在key的个数 Hash

hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象

hset key field1 value1 field2 value2 [field value] ##添加key,给key设置字段以及相应的value值,可以同里设置多个field,hmset同样 hget key field ##获得key的其中一个field字段的value值 hmget key field ##获得key的一个或多个field字段的value值 hdel key field1 field2 ##删除key的一个或多个field字段 hexists key field ##判断某个key中的field字段是否存在 hkeys key ##获取key的所有存在的field字段 hvals key ##获取key的所有value hlen key ##获取key存在的字段field个数 hsetnx key field value ##当只有key中的field字段不存在的时候,将field值设为value hincrby key field increment ##将key中的某个num字段filed,自增increment List

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

lpush key element1 element2 element3 ##从左边往右边推,依次推e1 e2 e3,(lpushx,如果list存在,才插入) rpush key element1 element2 element3 ##从右边往左边推,依次推e1 e2 e3 (rpushx,如果list存在,才插入) lpop key ##从左边往外弹(取),取出最左边的元素,取了该元素就没了 lpop key ##从右边往外弹(取),取出最右边的元素,取了该元素就没了 lrange start end ##取出list中某几个值,start和end可以是正反向索引,(正向索引从最左边0开始,反向索引从最右边-1开始),start end都是include lindex key index ##根据索引取出list中的元素 llen key ##list的长度 LSET key index value ##设置设置list某个位置的元素 ##根据参数COUNT的值,移除列表中与参数 VALUE 相等的元素。 ###count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。 ###count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。 ###count = 0 : 移除表中所有与 VALUE 相等的值。 lrem key count value ##将source列表中最右边的元素取出来,再放入到destination列表中最左边 RPOPLPUSH source destination ##将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。 LINSERT key BEFORE|AFTER pivot value BLPOP key timeout ##弹出list中最左边的值,如果不存在,则阻塞timout秒 BRLPOP key timeout ##弹出list中最右边的值,如果不存在,则阻塞timout秒 BRPOPLPUSH source destination timeout ##将source列表中最右边的元素取出来,再放入到destination列表中最左边,如果source没有元素,则阻塞timeout秒。 Set

集合Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。 Redis中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)

sadd key member1 member2 member3 ##向集合中添加1个或多个成员,自动去重 srem key memeber1 memeber2 ##移除集中中一个或多个元素 scrad key ##获取集合的成员数 SMEMBERS key ##获取集中中的所有成员 SISMEMBER key member ##判断memeber是否是集合key中的成员 sdiff key1 key2 ##差集(返回集合1中有的,而集合2中没有的数据) SDIFFSTORE destination key1 [key2] ##将差集存在destination当中 SINTER key1 [key2] ##交集 SINTERSTORE destination key1 [key2] ##将交集存储在destination SUNION key1 key2 ##并集 SUNIONSTORE destination key1 [key2] ##将并集储存在destination SMOVE source destination member ##将元素memeber从source集合移动到destination中 spop key ##移除并返回集合中的一个随机元素 ##返回集合中一个或多个随机元素 ###如果count>0 且 countsize,则返回集合的全部元素(不重复) ###如果count


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有