Redis安装及相关基础命令

今天我们来看看redis安装和使用,一切总结都是为了日后能方便的使用。
redis存储的数据就是K V形式的,可以进行持久化
首先我们需要先安装一下,我这里选择的是在线下载源码包,然后进行编译

cd /opt 
wget http://download.redis.io/releases/redis-4.0.8.tar.gz

下载好之后,我们需要解压缩

tar -zxvf redis-4.0.8.tar.gz

解压缩后,进入文件夹,并执行make命令进行编译

cd redis-4.0.8
make

编译之后,我们需要安装,并指向安装目录,等号左右不要有空格

cd bin
make install PREFIX=/usr/local/redis-4.0.8

之后,我们将redis.conf复制到我们的安装目录中

cp redis.conf /usr/local/redis-4.0.8/redis.conf

配置文件中的相关配置项,在我的其他博客有说明,大家需要改什么,可以去参考一下
为了更好的操作,我只改其中一个配置,就是将daemonize no改为yes,让其在后台运行

cd /usr/local/redis-4.0.8
vim redis.conf

修改完之后,我们可以启动了

cd bin
./redis-server ../redis.conf

我们可以查看一下,进程中是否存在redis

ps -aux|grep redis

redis是单线程运行的,每秒可处理10万次左右的请求,这个需要结合宿主机的硬件,我们可以运行命令来查看,我的机器大概是7万左右

./redis-benchmark 

好了,到现在,我们就可以连接redis客户端,来试试各种命令了
连接客户端这一块,也可以说点东西
默认连接的就是6379,所以如果我们端口没改,可以直接执行命令连接redis客户端

./redis-cli

如果我们修改端口为6378,那么连接的时候需要加上端口了,包括如果本地有多个redis实例,那么使用客户端连接redis时需要加上端口

./redis-cli -p 6378

还有一种就是远程连接,这时就需要加上ip了,如果端口不是默认6379,也需要加上端口,配置文件中设置了密码,那么就需要加上密码了

./redis-cli -h ip -p 端口 -a 密码

我们也可以先连接上,然后在输入密码进行验证

auth password

好,客户端连接上了,我们可以发个暗号ping,会回复一个PONG
在这里插入图片描述
获取配置文件中的某个值

config get key

设置配置文件中的某个值

config set key value

配置文件默认是16个数据库,我们可以通过命令来切换数据库

select 切换的库下标

查看当前库key的数量

DBSIZE

想看具体的key有哪些

keys *

想匹配某个key,我们可以用?作为占位符,只占一位,比如匹配key为k2

keys k?

判断某个key是否存在,存在返回1,不存在返回0

EXISTS 查询的key

将某个键值对在当前库移除,并移动到其他库

move 移除的key 移动到的库索引

查看还有多少秒过期,-1表示永不过期,-2表示已过期

ttl key

为给定的key设置过期时间,过期之后就不存在了

expire key 秒钟

查看你的key是什么类型

type key

添加值,值有五种类型String 字符串,List 列表,Set 集合,Hash hash散列值,Zset sorted set 有序集合

String(字符串)
String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
String类型是二进制安全的,意思是Redis的String可以包含任何数据,比如jpg图片或者序列化的对象。
String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M。
设置值

set key value

删除key

del key

追加值

append key value

查看长度

STRLEN key

当值为数字时,可以直接进行加一操作

INCR key

当值为数字时,可以直接进行减一操作

DECR key

当值为数字时,可以直接进行相加操作

INCRBY k2 value

当值为数字时,可以直接进行相减操作

DECRBY k2 value

获取开始下标和结束下标之间的值,当结束下标为-1时,就是末尾

GETRANGE key 开始下标 结束下标

设值覆盖

SETRANGE key 开始下标 替换的值

设置值并设置过期时间

setex key 过期时间 value

如果不存在设值,存在则不覆盖

setnx key value

设置多个值

mset key value key value key value ......

获取多个值

mget key key key ......

进行多个不存在设值,但是不能已存在和不存在的混合设置,要么都存在要么都不存在

msetnx key value key value key value ......

设置新值,并返回旧值,如不存在旧值就返回null

getset key value

List(列表)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。它的底层实际是个链表。
如果键不存在,创建新的链表
如果键已存在,新增内容
如果值全移除,对应的键也就消息了
链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。
从左到右设置值

LPUSH key value value ......

从右到左设置值

RPUSH key value value ......

查看值,可以根据下标选择,结束下标为-1时就是末尾

LRANGE key 开始下标 结束下标

从左弹出值

LPOP key

从右弹出值

RPOP key

获取某个下标的值

lindex key index

获取长度

llen key

删除N个值

lrem key n value

截取某段值,将截取的值赋值

ltrim key 开始下标 结束下标

源列表的从右弹出的值从左压入目标列表

rpoplpush 源列表 目标列表

在某个值的前面插入值

linsert key before 基值 插入值

在某个值的后面插入值

linsert key after 基值 插入值

Set(集合)
Redis的Set是String类型的无序集合,它是通过HashTable实现的。
设置一个set

sadd key k1 v1 k2 v2 k3 v3

查看set的值

smembers key

查看set中是否存在某个键,存在返回1不存在返回0

sismember key

获取set的元素个数

scard key

删除set的某个元素

srem key value

从set中随机出n个数

srandmember key n

随机出栈,默认出一个,如果写n,则随机出n个

spop key n(不写,默认出n个)

将set1的值移到set2中

smove set1 set2 value

差集,在set1里面而不在set2里面的元素

sdiff set1 set2

交集,在set1和set2都存在的元素

sinter set1 set2

并集,set1和set2所有元素去重之后的集合

sunion set1 set2

Hash(哈希)
Redis hash是一个键值对集合。
Redis hash是一个String类型的field和value的映射表,hash特别适合用于存储对象。
类似Java里面的Map<String,Object>
设置值,key为redis的键,里面k v为map的元素

hset key k v

获取值,首先获取该元素,再获取元素中的值

hget key k

设置多个值

hmset key k v k v k v ......

获取多个值

hmget key k k k ......

获取所有的值

hgetall key

删除某些元素

hdel key k k k ......

获取元素数量

hlen key

判断是否存在某个元素,存在返回1不存在返回0

hexists key k

获取所有元素的key

hkeys key

获取所有元素的value

hvals key

元素的值如果为整数时,可以自增某个整数

hincrby key k n

元素的值如果为小数时,可以自增某个小数

hincrbyfloat key k n

如果不存在某个元素则设值,不存在设值成功返回1,存在设值失败返回0

hsetnx key k v

Zset(sorted set:有序集合)
Redis zset和set一样也是String类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序,zset的成员是唯一的,但分数(score)却可以重复。
设置值,值又是一个键值对,包含分数和值

zadd key score value score value score value ......

查看值

zrange key 开始下标 结束下标

查看带有分数的值

zrange key 开始下标 结束下标 withscores

查看某个分数区间的值

zrangebyscore key 开始分数 结束分数

查看某个分数区间的带有分数的值

zrangebyscore key 开始分数 结束分数 withscores

查看不包含某个分数区间,但不包含开始分数或结束分数的值

zrangebyscore key (开始分数 (结束分数

查看某个分数区间,并从开始下标截取n个值

zrangebyscore key 开始分数 结束分数 limit 开始下标 n

删除元素

zrem key 值

查看长度

zcard key

统计某个分数区间中的个数

zcount key 开始分数 结束分数

查看值的下标

zrank key value

查看值的分数

zscore key value

逆序获取下标值

zrevrank key value

将zset逆序排列

zrevrange key 开始下标 结束下标

逆序获取某个分数区间的值

zrevrangebyscore key 开始分数 结束分数

清除库数据(慎用)

FLUSHDB

清除所有库数据(慎用)

FLUSHALL

最后给大家提供一个Redis操作手册的网站,可以参考参考Redis命令参考

猜你喜欢

转载自blog.csdn.net/weixin_45345374/article/details/112527528