1.官网下载redis安装文件 http://redis.io
2.进入文件压缩包路径,解压文件 tar -zxvf redis-6.0.9.tar.gz
3.安装gcc环境 yum install gcc-c++
如果redis版本高,gcc版本低的话可能会导致安装失败,这样需要重新安装高版本gcc
解决办法:借助scl技术临时切换更高版本的gcc完成安装
安装scl源 : yum -y install centos-release-scl
安装新版gcc:yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
切换新版本:scl enable devtoolset-9 bash
查看gcc版本 gcc -v
4重新执行make命令。如果提示没有需要make的文件,则将解压的redis文件夹删掉重新解压之后再执行make命令即可
5.make install
6.修改redis.conf文件,为了不更改源解压文件,我们可以复制一份该文件到usr/local/bin中,之后我们就操作我们复制的配置文件即可。
找到daemonize 默认状态为no,我们改为yes,意思是让redis在后台启动。
7.启动redis服务 进入bin目录后 : redis-server redisconfig/redis.conf
8.使用redis客户端进行测试连接:redis-cli -p 6379 之后 输入ping 如果弹出pong则说明连接成功
9.关闭redis连接 shutdown
10.redis默认有16个数据库。默认使用第0个。切换数据库用select ,查看数据库大小 dbsize,清空当前库 flushdb,清空所有库 flushall
11.redis是单线程的,是基于内存操作。CPU不是redis性能瓶颈。瓶颈是机器的内存和网络带宽。
12.设置有效期:expire name 10; 设置有效期为10秒钟。可以通过 ttl name 来查看有效时间
13。基本命令:keys * :查看所有的key值 ;
exists name 判断当前key是否存在;
move name 1:将当前数据库中的key为name的数据移动到数据库1中;
type name :查看key为name的值的类型;
append name hello :在name值的后面追加字符串hello,如果当前key不存在,相当于set;
strlen name:获取name值的长度;
incr name:在name值基础上加1;
decr name:在name值基础上减1;
incrby name 10:在name值基础上加10;
decrby name 10:在name值基础减10;
getrange name 0 3:获取name值的前四位,闭合区间;截取字符串
getrange name 0 -1:获取全部内容;截取全部字符串;
setrange name 1 xx: 将name值中第二个位置的字符替换为xx;
setex key 30 hello:设置key的值为hello,有效期为30秒;
setnx key hello :如果没有这个key,则设置key的值为hello,如果有,则不更改之前的值,创建失败;
mset k1 v1 k2 v2 k3 v3:批量设置key,value;
mget k1 k2 k3 :批量获取值;
msetnx k1 v1 k2 v2 :如果都不存在则创建,如果有一个存在,则创建失败(原子行的操作,一起成功,一起失败)
getset key1 hello :如果不存在值,则返回nil,并将key1的值存为hello,如果存在值,则返回原来的值,并更新为hello
===========================================================================================
list操作:
lpush list one; lpush list two; lpush list three; 将数据push到list中 从左插入
rpush list zero; 将数据push到list中,从右插入
lpop list :移除list的第一个元素;
rpop list :移除list的最后一个元素;
lindex list 1 通过下标获取list中的第一个值;
llen list:返回list列表的长度;
lrem list 1 one :移除list中指定个数的value;
ltrim list 1 2 :通过下标截取指定的长度;list被修改,只剩下截取后的数据;
rpoplpush list list1:移除list列表中最后一个元素到list1中
lset list 1 hah :将列表中指定下标的值替换为另一个值,更新操作,如果存在则更新,如果不存在则报错
linsert list before one ooo:将某个具体的值插入到列表中具体值的前面或后面;
=====================================================================================================
set操作:set中的值不能重复、无序的集合
sadd myset hello set集合中添加值
smembers myset 查看指定set的所有值
sismember myset hello :判断某一个值是不是在set集合中,存在返回1,不存在返回0
scard myset :获取set集合中的元素个数
srem myset hello :移除集合中的指定元素
srandmember myset :随机抽取一个元素
spop myset :随机删除一些set集合中的元素
smove myset myset2 hello : 将一个指定的值,从myset中移动到另一个myset2集合中;
sdiff key1 key2 :key1和key2的差集
sinter key1 key2 :交集
sunion key1 key2 :并集
======================================================================================================================
hash(Map集合)
============================================================================================================================
zset(有序集合)
=====================================================================================================================================
geospecial地理位置详解
====================================================================================================================================
===========================================================================================================================================
===========================================================================================================================================
=====================================================================================================================================
======================================================================================================================================
注:以上内容参考自狂神说java,有兴趣的小伙伴可以查看哔哩哔哩:https://www.bilibili.com/video/BV1S54y1R7SB?p=25