Redis安装
Redis的安装这里在在Linux系统上实现
1. 配置阿里云yum源
下载配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
生成缓存
yum makecache
2、上传并解压
tar -zxvf redis-6.2.6.tar.gz -C /usr/local/soft/
3、安装编译所需的依赖
yum install -y gcc-c++ gcc tcl
4、编译并安装Redis
cd 切换目录
cd /usr/local/soft/redis-6.2.6
编译redis
make
创建一个目录 用于保存编译后的结果
mkdir -p /usr/local/soft/redis
安装
make PREFIX=/usr/local/soft/redis install
5、复制配置文件
cp /usr/local/soft/redis-6.2.6/redis.conf /usr/local/soft/redis/
6、配置环境变量
# 编辑文件 vim /etc/profile # 加入以下内容 export JAVA_HOME=/usr/local/soft/jdk1.8.0_171 export REDIS_HOME=/usr/local/soft/redis export PATH=$PATH:$JAVA_HOME/bin:$REDIS_HOME/bin # 重新加载环境变量 source /etc/profile
7、修改配置文件
编辑文件
vim /usr/local/soft/redis/redis.conf
修改以下内容
# 开放远程登录 # 将bind ip 设置为 bind 0.0.0.0 -::1 或者 注释掉 bind 0.0.0.0 -::1 # 将 protected-mode yes 改为no 关闭保护模式 protected-mode no
8、启动
后台启动
进入到目录cd /usr/local/soft/redis/bin中
后台启动:nohup redis-server redis.conf &
前端启动:redis-server redis.conf
9、关闭
ps -aux | grep redis
找到该进程,杀死
kill -9 加进程号
10、连接
redis-cli
11、测试
插入一条数据 set key1 value1 查询数据 get key1
Redis的使用
插入数据
set key value [EX seconds|PX milliseconds|EXAT timestamp|PXAT milliseconds-timestamp] [NX|XX]
EX:多少秒后过期消失
PX:多少毫秒后过期消失
EXAT:指定时间戳过期
PXAT指定毫秒时间戳过期
NX:不存在 再执行
XX:存在 再执行
注意: set插入数据 如果k存在会覆盖
TTL生存时间
查询生存时间
TTL key
注意:
-1表示没有设置生存时间
-2设置生存时间,但是已经消亡了
删除生存时间
PERSIST key
设置多少秒或者毫秒后过期
EXPIRE key seconds PEXPIRE key milliseconds
设置多少秒或者毫秒后过期
EXPIRE key seconds PEXPIRE key milliseconds
查询
keys pattern
keys * # *匹配所有 keys k? # ?匹配一位所有 keys k[ab]y #[] 匹配集合中某一位
k的操作
查询k的类型
type key
判断是否存在
EXISTS key
k的重命名
RENAME key newkey RENAMENX key newkey
键删除
DEL key [key ...]
获取值 GET key 获取多个给定的键的值 MGET key [key ...] 返回旧值并设置新值 GETSET key value 如果键不存在,就创建并赋值
字符串的操作
字符串长度 STRLEN key 字符串长度 STRLEN key
追加字符串 APPEND key value 如果键存在就追加;如果不存在就等同于SET key value 获取子字符串 GETRANGE key start end 索引值从0开始,负数表示从字符串右边向左数起,-1表示最有一个字符 覆盖字符串 SETRANGE key offset value
步长
INCR key DECR key
INCR key DECR key
注意:只能是数字类型的String才能使用
位图BitMap
不是真正的数据类型 是隐藏在String的一个二进制的存储方式
一个字符串类型的值最多能存储512M字节的内容 位上限:2^(9+10+10+3)=2^32b
每个位图的位置默认存储的为0,存储数据是按照数据二进制方式 依次顺推
set a a;0110 0001 位图:0110 0001 0000....00000 设置某一位上的值 SETBIT key offset value offset偏移量,从0开始 value不写,默认是0 获取某一位上的值 GETBIT key offset 返回指定值0或者1在指定区间上第一次出现的位置 BITPOS key bit [start] [end]
位操作
BITOP AND destkey key [key ...] ,对一个或多个 key 求逻辑并,并将结果保存到 destkey BITOP OR destkey key [key ...] ,对一个或多个 key 求逻辑或,并将结果保存到 destkey BITOP XOR destkey key [key ...] ,对一个或多个 key 求逻辑异或,并将结果保存到 destkey BITOP NOT destkey key ,对给定 key 求逻辑非,并将结果保存到 destkey
这些位操作结果的返回值为字符串的长度
a:97:0110 0001
b:98:0110 0010
and :0110 0000 逻辑并:相同为本身,不同为0
or :0110 0011 逻辑或:相同为本身,不同为1
xor :0000 0011 逻辑异或:相同为0,不同为1
统计指定位区间上值为1的个数 BITCOUNT key [start] [end] 从左向右从0开始,从右向左从-1开始,注意官方start、end是位,测试后是字节 BITCOUNT testkey 0 0表示从索引为0个字节到索引为0个字节,就是第一个字节的统计 BITCOUNT testkey 0 -1等同于BITCOUNT testkey 最常用的就是 BITCOUNT testkey
注意:
八位字节是一个区间
库的操作
redis默认16个库
切换数据库
select index
清除当前库数据 FLUSHDB 清除所有库中的数据 FLUSHALL