我的编程空间,编程开发者的网络收藏夹
学习永远不晚

redis 入门一

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

redis 入门一

redis 入门一

一、redis 简介

1、什么是 redis?

  redis 是一个开源免费的高性能的 key - value 数据库。
  支持数据持久化,即可以将内存的数据存储在磁盘中,重启服务后可以再次加载磁盘中的数据并使用。
  支持多种类型,比如:String(字符串)、List(列表)、Set(集合)、zset(有序集合)、Hash(散列) 等。
  支持数据备份,主从模式的数据备份(master - slave)。
  redis 所有操作都是原子性的,即要么成功执行,要么不执行。
官网:
  https://redis.io/

 

2、安装 redis

(1)使用 docker 安装、使用 redis

【参考地址:(Linux(CentOS7) 上安装 docker)】
    https://www.cnblogs.com/l-y-h/p/12622730.html#_label0
    
【参考地址:(ocker 安装 Redis)】
    https://www.cnblogs.com/l-y-h/p/12622730.html#_label6

 

(2)Centos7 编译安装 redis 5.0.8
  Step1:下载 redis 包。

【官网下载地址:】
    https://redis.io/download
    http://download.redis.io/releases/redis-5.0.8.tar.gz
    
【在 Linux 内部直接下载:】
    [root@localhost local]# wget http://download.redis.io/releases/redis-5.0.8.tar.gz

  

  Step2:解压、编译。

【解压:】
    [root@localhost local]# tar -zxvf redis-5.0.8.tar.gz 
    
【进入解压后的目录,并编译(前提 系统内部已经安装了 gccmake 等程序):】
    [root@localhost local]# cd redis-5.0.8/
    [root@localhost local]# make
    
【编译完后:进入 class="lazy" data-src 目录,可以看到 redis-server、redis-cli 等程序】
    [root@localhost redis-5.0.8]# cd class="lazy" data-src/

 

 

 

  Step3:开启服务程序(redis-server),并使用内置客户端( redis-cli) 进行交互。

【开启服务程序(redis-server):】
    方式一: 
        ./redis-server       根据默认配置文件启动 redis
    方式二:
        ./redis-server   ../redis.conf      根据指定的配置文件(可以自定义配置文件位置)启动 redis

【开启客户端进行交互(redis-cli):】
    ./redis-cli

  通过 xShell 使用一个连接以前台模式启动一个 redis 服务。

 

 

 

  另开一个 xShell 连接,执行 redis-cli,在安装包的 class="lazy" data-src 目录下 执行 ./redis-cli。

 

 

 

   Step4:关闭服务

【在 redis-cli 中输入指令】
    [root@localhost class="lazy" data-src]# ./redis-cli shutdown

 

 

 

3、redis 可视化工具下载

(1)官网下载(要收费的)
  地址:https://redisdesktop.com/pricing

 

 

 

(2)破解版下载(白嫖)
  链接:https://pan.baidu.com/s/1v3ZJEdzEGBIf5gYGsyhRBw
  提取码:ubhz
或者
  http://www.downza.cn/soft/210734.html

 

 

 

 

 

 

 

 

 

二、redis 中 键(key) 相关命令

  命令不区分大小写,但数据区分大小写。

1、keys(用于查看 key 列表)

【格式:】
    keys pattern         用于查找 匹配 pattern 格式的 key

【举例:】
    127.0.0.1:6379> keys *

 

 

 

2、del(用于删除某个键)

【格式:】
    del key           当 key 存在时,删除 key,返回 1。key 不存在时,忽略,返回 0。
    
【举例:】
    127.0.0.1:6379> del a

 

 

 

3、exists(判断某个键是否存在)

【格式:】
    exists key          用于判断某个 key 是否存在,存在返回 1,不存在返回 0
    
【举例:】
    127.0.0.1:6379> exists b

 

 

 

4、type(返回指定 key 存储值的类型)

【格式:】
    type key          用于判断某个 key 的类型

【举例:】
    127.0.0.1:6379> type c

 

 

 

5、rename、renamenx(用于给 key 修改名字)

【rename 格式:】
    rename old_key_name new_key_name      用于修改 key 名。
注:
    若 old_key_name 不存在时,会返回一个错误。
    若 new_key_name 存在时,则覆盖旧值,返回 OK。 

【renamenx 格式:】
    renamenx old_key_name new_key_name      用于修改 key 名
注:
    若 old_key_name 不存在时,会返回一个错误。
    若 new_key_name 存在时,则不会修改,返回 0。 

【举例:】
    127.0.0.1:6379> rename a e
    127.0.0.1:6379> renamenx a e

 

 

 

 

 

 

6、randomkey(随机返回当前库的一个 key)

【格式:】
    randomkey          随机返回当前库中的 一个 key,若当前库没有数据,则返回 null。

【举例:】
    127.0.0.1:6379> randomkey

 

 

 

三、redis 数据类型 -- String 以及常用命令

1、String(字符串)

  最基本的 类型,一个 key 对应 一个 value。
  是二进制安全的,可以存储任何数据(比如图片),存储最大值为 512 MB。

2、set(给指定 key 设置一个 String 类型的 value,无视类型直接覆盖)

【格式:】
    set key value              给 key 设置一个 value 值。
    
【举例:】
     127.0.0.1:6379> set b world

 

 

 

3、get(获取指定 key 的 value 值)

【格式:】
    get key          用于返回 key 的值,
注:
    若 key 不存在,则返回 null,
    若 key 存储的不是 string 型数据,则返回一个错误
    
【举例:】
    127.0.0.1:6379> get b

 

 

 

4、getrange(截取 key 存储的 value 的指定位置的字符串)

【格式:】
    getrange key start end         截取字符串,包括 start、end(从 0 开始计数)。
    
【举例:】
    127.0.0.1:6379> getrange a 0 -1
    127.0.0.1:6379> getrange a 3 7

 

 

 

5、getset(设置指定 key 的 value 值)

【格式:】
    getset key value      设置指定 key 的 value 值
注:
    当 key 不存在时,返回 null
    当 key 的 value 不是 string 型时,返回 一个错误(与 set 有区别)。

【举例:】
    127.0.0.1:6379> getset a world

 

 

 

6、mget(一次获取多个 key 的 value 值)

【格式:】
    mget key1 [key2]                  一次获取多个 key 的值
注:
    若 key 的 value 不属于 string,会返回 null。
    若 key 不存在,返回 null。

【举例:】
    127.0.0.1:6379> mget a b  

 

 

 

7、mset、msetnx(一次设置多个 key - value 键值对)

【mset 格式:】
    mset key1 value1 [key2 value2]       一次设置多个 key - value 键值对
    
【msetnx 格式:】
    msetnx key1 value1 [key2 value2]       一次设置多个 key - value 键值对
注:
    key 不存在时才能成功设置。
    
【举例:】
    127.0.0.1:6379> mset a hello b world
    127.0.0.1:6379> msetnx c java d python

 

 

 

8、setnx(当 key 不存在时,设置值)

【格式:】
    setnx key value       添加一个 从不存在的 key - value 键值对
注:
    若 key 存在,则不会设置 value 值,返回 0.
    若 key 不存在,则设置 value 值,返回 1.

 

 

 

9、append(给指定 key 的 value 追加字符串)

【格式:】
    append key value       给指定 key 追加字符串
注:
    若 key 不存在,则等同于 set key value.
    若 key 存在,则 向其 value 末尾 追加 字符串。

【举例:】
    127.0.0.1:6379> append a world

 

 

 

10、incr、incrby、decr、decrby(增加、减少 数值类型的 value 值)

【格式:】
    incr key                给 key 的 value 加 1
    incrby key value        给 key 的 value 加 指定的 value 
    decr key                给 key 的 value 减 1
    decrby key value        给 key 的 value 减 指定的 value
注:
    value 的值必须是能转为 数值 型的字符串才可以成功执行

【举例:】
    127.0.0.1:6379> incr b
    127.0.0.1:6379> decr b
    127.0.0.1:6379> incrby b 20
    127.0.0.1:6379> decrby b 10

 

 

 

11、strlen(获取指定 key 的 value 字符串的长度)

【格式:】
    strlen key         获取 指定 key 的 value 存储的 字符串的长度
    
【举例:】
    127.0.0.1:6379> strlen a

 

 

 

四、redis 数据类型 -- Hash 以及常用命令

1、Hash(散列、哈希)

  是一个 string 类型 key(指哈希表名) 的 field - value 集合。适合用于存储对象。
  可以存储 2^32 -1 个 key - value 键值对。

2、hkeys(获取指定哈希表 key 的 所有的字段 field)

【格式:】
    hkeys key      用于获取指定 key 的所有 field。
注:
    若 key 不存在,则提示一个空列表信息。

【举例:】
    127.0.0.1:6379> hkeys test

 

 

 

3、hset(给 哈希表中的 字段 赋值)

【格式:】
    hset key field value     给 key 这个哈希表的 field 字段 赋值 为 value。
注:
    若 key 不存在,则会创建。
    若 field 重复,则新值会覆盖旧值。

【举例:】
    127.0.0.1:6379> hset test a helloworld

 

 

 

4、hmset(同时设置 多个 field - value 到指定的 key 中)

【格式:】
    hmset key field1 value1 [field2 value2]      同时设置多个 field - value 对到 哈希表 key 中
注:
    若 field 重复,则新值覆盖旧值。

【举例:】
    127.0.0.1:6379> hmset test a hello d world

 

 

 

5、hget、hmget、hgetall(获取哈希表 key 的 field - value值)

【hget 格式:】
    hget key field         用于返回 指定哈希表 key 中指定 字段 field 的 value 值
    
【hmget 格式:】
    hmget key field1 [field2]    用于一次返回一个或多个 field 的 value 值
    
【hgetall 格式:】
    hgetall key            返回指定 key 下所有 的 field -value
    
【举例:】
    127.0.0.1:6379> hget test a
    127.0.0.1:6379> hmget test a b c e
    127.0.0.1:6379> hgetall test

 

 

 

6、hvals(获取指定 key 下所有的 field 对应的 value)

【格式:】
    hvals key           返回指定 key 下所有的 field 对应的 value 值
    
【举例:】  
    127.0.0.1:6379> hvals test

 

 

 

7、hlen(获取指定 key 中 field 的数量)

【格式:】
    hlen key       获取 指定 哈希表 key 中 field 的总数

【举例:】
    127.0.0.1:6379> hlen test

 

 

 

8、hdel (删除指定 key 中一个或多个 field)

【格式:】
    hdel key field1 [field2]     删除指定哈希表 key 中 指定的 field 字段
    
【举例:】
    127.0.0.1:6379> hdel test a

 

 

 

9、hexists(判断指定 key 中是否存在 field)

【格式:】
    hexists key field      判断指定哈希表 key 中是否存在 field,不存在返回 0,存在返回 1。

【举例:】
    127.0.0.1:6379> hexists test a

 

 

 

五、redis 数据类型 -- List 以及常用命令

1、List(列表)

  是字符串 的列表,按照插入顺序排序,一个 key 对应 多个 value。
  可以存储 2^32 - 1 个 value 元素。

2、lpush、lpushx(将一个或多个值插入列表的头部)

【lpush 格式:】
    lpush key value1 [value2]          
注:
    将 value 插入 列表的头部,若 key 不存在,则创建一个 key

【lpushx 格式:】
    lpush key value1 [value2]         
注:
    将 value 插入 列表的头部,若 key 不存在,则添加失效,并返回一个 空列表信息。
            
【举例:】
    127.0.0.1:6379> lpush test 1 2
    127.0.0.1:6379> lpushx test 3 4

 

 

 

3、rpush、rpushx(将一个或多个值插入列表的尾部)

【rpush 格式:】
    rpush key value1 [value2]          
注:
    将 value 插入 列表的头部,若 key 不存在,则创建一个 key

【rpushx 格式:】
    rpush key value1 [value2]         
注:
    将 value 插入 列表的头部,若 key 不存在,则添加失效,并返回一个 空列表信息。
            
【举例:】
    127.0.0.1:6379> rpush test 1 2
    127.0.0.1:6379> rpushx test 3 4

 

 

 

4、lrange(返回指定范围的 list 列表)

【格式:】
    lrange key start end
注:
    返回指定范围 内的 list 列表,其中 -1 表示倒数第一个数,0 表示第一个数

【举例:】
    127.0.0.1:6379> lrange test 0 -1
    127.0.0.1:6379> lrange test -3 3

 

 

 

5、llen(获取列表的长度)

【格式:】
    llen key 
注:
    返回一个列表的长度,若 key 不存在,则返回 0 。

【举例:】
    127.0.0.1:6379> llen test

 

 

 

6、lindex(用于获取列表中指定下标的元素)

【格式:】
    lindex key index
注:
   返回 list 中指定下标 index 的元素,其中 -1 表示倒数第一个数,0 表示第一个数

【举例:】
    127.0.0.1:6379> lindex test 0
    127.0.0.1:6379> lindex test -1

 

 

 

7、lpop(从列表头部移除第一个元素)

【格式:】
    lpop key         从 key 头部移除第一个元素,key不存在时返回 null
    
【举例:】
    127.0.0.1:6379> lpop test

 

 

 

8、rpop(从列表的尾部移除最后一个元素)

【格式:】
    rpop key         从 key 尾部移除最后一个元素,key不存在时返回 null
    
【举例:】
    127.0.0.1:6379> rpop test

 

 

 

9、lset(通过 列表的下标去设置 元素值)

【格式:】
    lset key index value
注:
    设置 list 中指定下标 index 的元素,其中 -1 表示倒数第一个数,0 表示第一个数

【举例:】
    127.0.0.1:6379> lset test 0 hello

 

 

 

10、ltrim(截取列表中指定范围的元素)

【格式:】
    ltrim key start end
注:
    截取列表中指定范围的元素,不在范围的元素会删除。其中 -1 表示倒数第一个数,0 表示第一个数
    
【举例:】
    127.0.0.1:6379> ltrim test 1 3

 

 

 

六、redis 数据类型 -- Set 以及常用命令

1、Set(集合)

  是字符串 的无序集合,元素不重复且无序。
  一个 key 对应 多个 value。可以存储 2^32 -1 个 value 元素。

2、sadd(添加一个或多个元素到集合中)

【格式:】
    sadd key value1 [value2]
注:
    添加一个或多个元素到集合key 中,重复元素不会被添加。
            
【举例:】
    127.0.0.1:6379> sadd test 1 2 3 1 2

 

 

 

3、smembers(用于返回集合的所有元素)

【格式:】
    smembers key
注:
    返回指定集合 key 的所有元素,若 key 不存在,返回 (empty list or set)
    
【举例:】
    127.0.0.1:6379> smembers test

 

 

 

4、scard(用于返回当前集合中元素的个数)

【格式:】
    scard key
注:
    返回指定 key 的元素的个数。
    
【举例:】
    127.0.0.1:6379> scard test

 

 

 

5、sismember(判断集合中是否包含某元素)

【格式:】
    sismember key value
注:
    判断集合 key 中是否存在 某元素 value
    
【举例:】
    127.0.0.1:6379> sismember test 4

 

 

 

6、srem(移除一个或多个元素)

【格式:】
    srem key value1 [value2]
注:
    移除一个或多个元素,根据值来匹配。
    
【举例:】
    127.0.0.1:6379> srem test 2 3 4

 

 

 

7、spop(随机移除一个或多个元素)

【格式:】
    spop key [count]
注:
    count 表示 移除的元素个数,默认为 1,若 key 不存在,返回 null。
        
【举例:】
    127.0.0.1:6379> spop test 6
    127.0.0.1:6379> spop test

 

 

 8、srandmember(随机返回一个或多个元素)

【格式:】
    srandmember key [count]

【举例:】
    127.0.0.1:6379> srandmember test 4

 

 

 

9、smove(将指定元素从一个集合移动到另一个集合)

【格式:】
    smove source destination member
注:
    将 member 元素 从 source 集合 移动到 destination 集合中。

【举例:】
    127.0.0.1:6379> smove test test1 4

 

 

 

七、redis 数据类型 -- zSet 以及常用命令

1、zset(有序集合)

  是字符串 的有序集合,元素不重复且有序,
  内部维护一个 double 类型的分数,根据该值对元素进行排序,double 值可以重复。
  一个 key 对应 多个 value。可以存储 2^32 - 1 个 value 元素。

2、zadd(添加一个或多个元素到集合中)

【格式:】
    zadd key score1 value1 [score2 value2]
注;
    score 为指定的整数或分数,用来排序。
    添加一个或多个元素到集合中,若已存在元素,则会覆盖旧的 score。

【举例:】
    127.0.0.1:6379> zadd test 2 hello 1 world 3 helloworld

 

 

3、zrange、zrevrange(返回指定范围的集合元素)

【zrange 格式:】
    zrange key start end [withscores]
注:
    按照元素的 score 增序排列。
    withscores 表示显示 元素的 score。
    其中 -1 表示倒数第一个数,0 表示第一个数。

【zrevrange 格式:】
    zrevrange key start end [withscores]
注:
    按照元素的 score 降序排列。

【举例:】    
    127.0.0.1:6379> zrange test 0 -1
    127.0.0.1:6379> zrange test 0 -1 withscores

 

 

 

 

4、zcard、zcount(获取集合中元素的个数)

【zcard 格式:】
    zcard key
注:
    获取指定 key 的所有元素的个数

【zcount 格式:】
    zcount key min max
注:
    获取指定 key 的 指定 分数范围内的元素的个数。

【举例:】
    127.0.0.1:6379> zcard test
    127.0.0.1:6379> zcount test 1.5 4.6

 

 

5、zscore(返回指定元素的 score 分数值)

【格式:】
    zscore key member
注:
    返回指定 member 在 指定 key 中的 score.
    
【举例:】
    127.0.0.1:6379> zscore test hello

 

 

6、zrem(移除一个或多个元素)

【格式:】
    zrem key member1 [member2]
注:
    从集合中移除 一个 或 多个 member。
    
【举例:】
    127.0.0.1:6379> zrem test world hello

 

 

7、zrank、zrevrank(获取指定元素在集合中的排名)

【zrank 格式:】
    zrank key member
注:
    按照 score 升序排列,并返回 member 在此序列中的排名。
    其中,0 表示第一名,依次递增。

【zrevrank 格式:】
    zrevrank key member
注:
    按照 score 降序排列,并返回 member 在此序列中的排名。

【举例:】
    127.0.0.1:6379> zrank test java
    127.0.0.1:6379> zrevrank test java

 

 

8、zremrangebyrank、zremrangebyscore(按照指定的范围移除元素)

【zremrangebyrank 格式:】
    zremrangebyrank key start end
注:
    按照 排名,移除 [start, end] 区间内的元素。

【zremrangebyscore 格式:】
    zremrangebyscore key min max
注:
    按照 分数值,移除 [min, max] 区间内的元素    
    
【举例:】
    127.0.0.1:6379> zremrangebyrank test1 2 3
    127.0.0.1:6379> zremrangebyscore test2 2 100

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

redis 入门一

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

redis 入门一

一、redis 简介1、什么是 redis?  redis 是一个开源免费的高性能的 key - value 数据库。  支持数据持久化,即可以将内存的数据存储在磁盘中,重启服务后可以再次加载磁盘中的数据并使用。  支持多种类型,比如:String(字符串)、
redis 入门一
2016-07-05

Redis系列(一)Redis入门

NoSQL 开发中或多或少都会用到,也是面试必问知识点。最近这几天的面试每一场都问到了。但是感觉回答的并不好,还有很多需要梳理的知识点。这里通过几篇 Redis 笔记整个梳理一遍,后面再加上面试题。Redis 系列:1. Redis系列(一)Redis入门2.
Redis系列(一)Redis入门
2020-02-02

【Redis】入门

Redis是一个开源的、基于内存的数据结构存储器,可以用作数据库、缓存和消息中间件 Redis最常用的功能 缓存 分布式锁 Redis概述Redis常用数据结构Redis删除过期数据策略Redis内存淘汰机制Redis持久化机制缓存问题及解决方案
【Redis】入门
2019-10-29

Redis入门(4) - 排序

SORT命令LIMIT参数BY参数GET参数STORE参数排序性能优化很多场合需要对元素进行排序,这时除了使用有序集合外,还可以借助Redis提供的SORT命令来排序。SORT命令SORT命令可以对列表类型、集合类型和有序集合类型的键进行排序。 SORT ke
Redis入门(4) - 排序
2019-03-07

mysql入门(一)

数据库介绍数据库是在计算机出现以后,为了解决计算机存储问题而创建,数据库中包含表,表当中才是数据。数据库的发展史1. 萌芽阶段所有存储依赖的都是文件,安全性低,查找非常困难。2. 层次模型1). 优点:查询分类的效率高;2). 缺点:导航结构:如果查找同类别数
mysql入门(一)
2019-10-16

一、python入门

一、python介绍介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器。Python这个名字,来自Guido所挚爱的电视剧Mon
2023-01-31

Python入门(一)

1.编程语言:    机器代码-》微码变成-》高级语言    编译器[解释器]:把人类能够理解的,转换成机器能够理解的        编译器:必须转换成二进制代码才能运行        解释器:边解释[执行],边运行     python非
2023-01-31

Redis入门-什么是NoSQL

原文:https://www.cnblogs.com/xxhxs-21/p/14630103.html
Redis入门-什么是NoSQL
2021-07-14

Redis入门(1) - 使用Cli

* [在Docker中使用Redis]* [Redis-Cli]* [命令的返回值类型]* [Redis中的多数据库]* [基础命令]Redis是REmote DIctionary Server(远程字典服务器)的缩写,它以字典结构存储数据,并允许其他应用通过
Redis入门(1) - 使用Cli
2017-07-26

Redis入门(6) - Lua脚本

Lua基本语法表类型函数Redis执行脚本KEYS与ARGV沙盒与随机数脚本相关命令原子性和执行时间Lua是一种高效的轻量级脚本语言,能够方便地嵌入到其他语言中使用。在Redis中,借助Lua脚本可以自定义扩展命令。Lua基本语法数据类型空(nil),没有赋值
Redis入门(6) - Lua脚本
2014-06-17

Redis入门(2) - 数据类型

Redis中的数据类型字符串散列列表集合有序集合Redis中的数据类型Redis定义了这几种数据类型:string(字符串)hash(散列)list(列表)set(集合)zset(有序集合)后面会介绍它们各自的特点和使用场景。可以用TYPE命令来获取键的类型。
Redis入门(2) - 数据类型
2017-07-10

Redis入门(5) - 消息通知

使用列表实现任务队列优先级队列按照规则订阅Redis也可以作为任务队列。任务队列顾名思义,就是“传递任务的队列”。任务队列与消息队列什么区别呢?任务队列是逻辑模型,而消息队列是通信模型,两者是不同层次的抽象,用消息队列可以实现任务队列。与任务队列进行交互的实体
Redis入门(5) - 消息通知
2016-07-22

python——opencv入门(一)

1、 OpenCV的结构和Python一样,当前的OpenCV也有两个大版本,OpenCV2和OpenCV3。相比OpenCV2,OpenCV3提供了更强的功能和更多方便的特性。不过考虑到和深度学习框架的兼容性,以及上手安装的难度,这部分先
2023-01-31

Python入门篇(一)

python学习博客:http://www.cnblogs.com/haiyan123/p/8387770.html#lable1http://www.cnblogs.com/alex3714http://www.cnblogs.com/l
2023-01-31

编程热搜

目录