一、Redis 简介 1、什么是 redis? redis 是一个开源免费的高性能的 key - value 数据库。 支持数据持久化,即可以将内存的数据存储在磁盘中,重启服务后可以再次加载磁盘中的数据并使用。 支持多种类
redis 是一个开源免费的高性能的 key - value 数据库。
支持数据持久化,即可以将内存的数据存储在磁盘中,重启服务后可以再次加载磁盘中的数据并使用。
支持多种类型,比如:String(字符串)、List(列表)、Set(集合)、zset(有序集合)、Hash(散列) 等。
支持数据备份,主从模式的数据备份(master - slave)。
redis 所有操作都是原子性的,即要么成功执行,要么不执行。
官网:
https://redis.io/
(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
【进入解压后的目录,并编译(前提 系统内部已经安装了 GCc、make 等程序):】
[root@localhost local]# cd redis-5.0.8/
[root@localhost local]# make
【编译完后:进入 src 目录,可以看到 redis-server、redis-cli 等程序】
[root@localhost redis-5.0.8]# cd 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,在安装包的 src 目录下 执行 ./redis-cli。
Step4:关闭服务
【在 redis-cli 中输入指令】
[root@localhost src]# ./redis-cli shutdown
(1)官网下载(要收费的)
地址:https://redisdesktop.com/pricing
(2)破解版下载(白嫖)
链接:https://pan.baidu.com/s/1v3ZJEdzEGBIf5gYGsyhRBw
提取码:ubhz
或者
http://www.downza.cn/soft/210734.html
命令不区分大小写,但数据区分大小写。
【格式:】
keys pattern 用于查找 匹配 pattern 格式的 key
【举例:】
127.0.0.1:6379> keys *
【格式:】
del key 当 key 存在时,删除 key,返回 1。key 不存在时,忽略,返回 0。
【举例:】
127.0.0.1:6379> del a
【格式:】
exists key 用于判断某个 key 是否存在,存在返回 1,不存在返回 0
【举例:】
127.0.0.1:6379> exists b
【格式:】
type key 用于判断某个 key 的类型
【举例:】
127.0.0.1:6379> type c
【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
【格式:】
randomkey 随机返回当前库中的 一个 key,若当前库没有数据,则返回 null。
【举例:】
127.0.0.1:6379> randomkey
最基本的 类型,一个 key 对应 一个 value。
是二进制安全的,可以存储任何数据(比如图片),存储最大值为 512 MB。
【格式:】
set key value 给 key 设置一个 value 值。
【举例:】
127.0.0.1:6379> set b world
【格式:】
get key 用于返回 key 的值,
注:
若 key 不存在,则返回 null,
若 key 存储的不是 string 型数据,则返回一个错误
【举例:】
127.0.0.1:6379> get b
【格式:】
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
【格式:】
getset key value 设置指定 key 的 value 值
注:
当 key 不存在时,返回 null
当 key 的 value 不是 string 型时,返回 一个错误(与 set 有区别)。
【举例:】
127.0.0.1:6379> getset a world
【格式:】
mget key1 [key2] 一次获取多个 key 的值
注:
若 key 的 value 不属于 string,会返回 null。
若 key 不存在,返回 null。
【举例:】
127.0.0.1:6379> mget a b
【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
【格式:】
setnx key value 添加一个 从不存在的 key - value 键值对
注:
若 key 存在,则不会设置 value 值,返回 0.
若 key 不存在,则设置 value 值,返回 1.
【格式:】
append key value 给指定 key 追加字符串
注:
若 key 不存在,则等同于 set key value.
若 key 存在,则 向其 value 末尾 追加 字符串。
【举例:】
127.0.0.1:6379> append a world
【格式:】
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
【格式:】
strlen key 获取 指定 key 的 value 存储的 字符串的长度
【举例:】
127.0.0.1:6379> strlen a
是一个 string 类型 key(指哈希表名) 的 field - value 集合。适合用于存储对象。
可以存储 2^32 -1 个 key - value 键值对。
【格式:】
hkeys key 用于获取指定 key 的所有 field。
注:
若 key 不存在,则提示一个空列表信息。
【举例:】
127.0.0.1:6379> hkeys test
【格式:】
hset key field value 给 key 这个哈希表的 field 字段 赋值 为 value。
注:
若 key 不存在,则会创建。
若 field 重复,则新值会覆盖旧值。
【举例:】
127.0.0.1:6379> hset test a helloworld
【格式:】
hmset key field1 value1 [field2 value2] 同时设置多个 field - value 对到 哈希表 key 中
注:
若 field 重复,则新值覆盖旧值。
【举例:】
127.0.0.1:6379> hmset test a hello d world
【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
【格式:】
hvals key 返回指定 key 下所有的 field 对应的 value 值
【举例:】
127.0.0.1:6379> hvals test
【格式:】
hlen key 获取 指定 哈希表 key 中 field 的总数
【举例:】
127.0.0.1:6379> hlen test
【格式:】
hdel key field1 [field2] 删除指定哈希表 key 中 指定的 field 字段
【举例:】
127.0.0.1:6379> hdel test a
【格式:】
hexists key field 判断指定哈希表 key 中是否存在 field,不存在返回 0,存在返回 1。
【举例:】
127.0.0.1:6379> hexists test a
是字符串 的列表,按照插入顺序排序,一个 key 对应 多个 value。
可以存储 2^32 - 1 个 value 元素。
【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
【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
【格式:】
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
【格式:】
llen key
注:
返回一个列表的长度,若 key 不存在,则返回 0 。
【举例:】
127.0.0.1:6379> llen test
【格式:】
lindex key index
注:
返回 list 中指定下标 index 的元素,其中 -1 表示倒数第一个数,0 表示第一个数
【举例:】
127.0.0.1:6379> lindex test 0
127.0.0.1:6379> lindex test -1
【格式:】
lpop key 从 key 头部移除第一个元素,key不存在时返回 null
【举例:】
127.0.0.1:6379> lpop test
【格式:】
rpop key 从 key 尾部移除最后一个元素,key不存在时返回 null
【举例:】
127.0.0.1:6379> rpop test
【格式:】
lset key index value
注:
设置 list 中指定下标 index 的元素,其中 -1 表示倒数第一个数,0 表示第一个数
【举例:】
127.0.0.1:6379> lset test 0 hello
【格式:】
ltrim key start end
注:
截取列表中指定范围的元素,不在范围的元素会删除。其中 -1 表示倒数第一个数,0 表示第一个数
【举例:】
127.0.0.1:6379> ltrim test 1 3
是字符串 的无序集合,元素不重复且无序。
一个 key 对应 多个 value。可以存储 2^32 -1 个 value 元素。
【格式:】
sadd key value1 [value2]
注:
添加一个或多个元素到集合key 中,重复元素不会被添加。
【举例:】
127.0.0.1:6379> sadd test 1 2 3 1 2
【格式:】
smembers key
注:
返回指定集合 key 的所有元素,若 key 不存在,返回 (empty list or set)
【举例:】
127.0.0.1:6379> smembers test
【格式:】
scard key
注:
返回指定 key 的元素的个数。
【举例:】
127.0.0.1:6379> scard test
【格式:】
sismember key value
注:
判断集合 key 中是否存在 某元素 value
【举例:】
127.0.0.1:6379> sismember test 4
【格式:】
srem key value1 [value2]
注:
移除一个或多个元素,根据值来匹配。
【举例:】
127.0.0.1:6379> srem test 2 3 4
【格式:】
spop key [count]
注:
count 表示 移除的元素个数,默认为 1,若 key 不存在,返回 null。
【举例:】
127.0.0.1:6379> spop test 6
127.0.0.1:6379> spop test
【格式:】
srandmember key [count]
【举例:】
127.0.0.1:6379> srandmember test 4
【格式:】
smove source destination member
注:
将 member 元素 从 source 集合 移动到 destination 集合中。
【举例:】
127.0.0.1:6379> smove test test1 4
是字符串 的有序集合,元素不重复且有序,
内部维护一个 double 类型的分数,根据该值对元素进行排序,double 值可以重复。
一个 key 对应 多个 value。可以存储 2^32 - 1 个 value 元素。
【格式:】
zadd key score1 value1 [score2 value2]
注;
score 为指定的整数或分数,用来排序。
添加一个或多个元素到集合中,若已存在元素,则会覆盖旧的 score。
【举例:】
127.0.0.1:6379> zadd test 2 hello 1 world 3 helloworld
【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
【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
【格式:】
zscore key member
注:
返回指定 member 在 指定 key 中的 score.
【举例:】
127.0.0.1:6379> zscore test hello
【格式:】
zrem key member1 [member2]
注:
从集合中移除 一个 或 多个 member。
【举例:】
127.0.0.1:6379> zrem test world hello
【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
【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
--结束END--
本文标题: redis 入门一
本文链接: https://www.lsjlt.com/news/5407.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-14
2024-05-14
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0