mv /opt redis.10.tar.gz //把Redis放到opt文件夹下面
tar -zxvf redis.10.tar.gz //解压Redis文件
yum install gcc-c++ //安装环境
gcc -v //查看版本信息
make //把所有需要的文件给你配置上 yum install gcc-c++ tcl
make install //安装
redis默认安装路径 usr/local/bin
复制一份redis.conf文件到usr/local/bin目录下bin目录创建一个kconfig文件用来存放
cp /opt/redis.10.tar.gz/redis.conf kconfig
redis默认不是后台运行,vim redis.conf进入之后找到daemonize on把on改为yes
启动redis //redis-server kconfig/redis.conf
连接redis redis-cli -p 6379
ping
退出连接
shutdown
exit
----------------redis压力测试
-h代表IP地址,本机默认不用写,-p是端口号。-c代表100个并发-n表示10000条请求
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
------------------------------------redis基础
redis有16个数据库
select 3 //可以切换到第3个数据库
DBSIZE //查看数据多少
keys * //查看所有key
flushdb //清空当前库
flushall //清空所有数据库
exists key //判断key是否存在
move key 1 //移动数据到第一个数据库
------------------redis五大数据类型
-----------string
incr key //每次运行都会把这个key的值加1
incrby key 10 //每次运行都会把这个key的值加10----删除自行脑补
decr key //每次运行都会把这个key的值减1
expire name 10 //设置key为name的值过期时间为10秒
append key xxx //在某个key上追加值xxx是要追加的值
strlen key //获取字符串长度
getrange key 0 4 //截取0-4的字符0 -1表示查看所有字符串
setrange key 2 xx //替换表示修改这个key中的第2个参数往后面的两个参数修改为xx
setex name1 20 ooo //设置一个key为name1的键20 秒过期,name1的值为ooo
setnx key xxx //设置一个key内容为xxx 如果key存在则创建失败,否则成功
msetnx key1 v1 key2 v2 key3 v3 //可以同时设置多个kv如果键存在则不成功,去掉就会覆盖
mget key1 key2 key3 //可以同时获取多个值
高级用法
mset user:1:name lzh user:1:age 21 // user:1:name等于是key lzh 等于是值
-------------list
lpush key name //将一个值或多个值插入
lrange key 0 -1 //查看该集合里面的所有数据
lpop key //移除集合左边第一个元素
r pop key //移除集合右边第一个元素
lindex list 2 //获取集合为list的下标为2的元素
lrem list 3 w //移除集合为list里面w的元素移除3个
ltrim list 0 3 //表示截取list集合中的0-3的数据下标0开始
lset list 2 "name8" //往list集合下标为2里面插入一个name8的值,该值会覆盖原来的下标为2的值
linsert list after "name1" "lzh" //表示在name1后面插入一个叫lzh的值
--------------------------set
sadd key 值 //set添加元素
smembers key //查看set里面的元素
sismember key 值 //查看该集合是否存在该值
scard key //获取set的个数
SRANDMEMBER key //获取随机元素
smove kye1 key2 值 //把key1的值移动到key2里面
sdiff sety sety2 //查找两个key不同的值
sinter key1 key2 //查找两个key相同的值
suninf key1 key2 //查看两个key中一共有多少元素
-------------------------hash
hset key name lzh //键值对方式存储
hget key name //读取
hmset key age 22 sex 1 email qq path wdf //存储多个键值对 空格分开
hmget key name age sex email path //读取多个值,通过键读取
hdel key 键名 //删除一个元素
hgetall key //查看该key中的所有键值对
--------------------------zset
zadd key 1 w //1代表优先级升序w是内容
zadd key 2 t 3 s 4 f //设置多个
ZRANGEBYSCORE user -inf +inf //从小到大排序
zcount key 1 3 //查看1-3之间有多少个值
-----------------------geoadd地图
geoadd china:city 132.66 34.96 cz 144.96 35.53 gy 122.43 31.22 zs //添加城市经纬度
geopos china:city bj //获取城市经纬度
geodist china:city bj cz km //获取北京到郴州的距离km代表公里
-----------查找附近的人
GEORADIUS china:city 110 30 3000 km //110-30代表经纬度3000代表搜索的半径
-----------------------------hyperloglog---------用于访问量
pfadd key 值 值 值 //增加值
pfcount key //查看有多少个值
pfmerge key3 key1 key2 //把key12合并为key3----重复的只记录一个
-----------------------Bitmaps---统计用户信息,活跃不活跃登录打卡都可以使用
setbit key 0 1
setbit key 1 1
setbit key 2 0
setbit key 3 1
setbit key 4 0
setbit key 5 1
setbit key 6 1 //可以记录一个礼拜有多少人没有打卡0表示未打卡
getbit key //查看是否有打卡
~~~~~~~~~~~~~~~~~~~~~~事务
基本流程
muiti //开启事务
命令 //命令
exec //执行
discard //放弃事务
~~~~~~~~~~~~~~~~~~~~~乐观锁
watch key //给key加上乐观锁
unwatch //放弃该监视乐观锁
~~~~~~~~~~~~~~~~~~jedis
<!--java整合redis-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
//开启事务
Transaction multi=jedis.multi();
multi.set("key1",user); //设置值
multi.exec(); //执行
~~~~~~~~~~~~~~~~sprongboot整合redis
1.配置文件写入
spring.redis.host=127.0.0.1
spring.redis.port=6379
//redis配置类
@Autowired
private RedisTemplate redisTemplate;
@Test
void contextLoads() {
//操作字符串的方法
redisTemplate.opsForValue().set("","");
}
~~~~~~~~~~~~~~~~··········订阅发布
SUBSCRIBE xxx //xxx是你要订阅的频道
PUBLISH xxx"hello,word" //xxx是你要发送到哪个频道,helloword是你发送的内容
~~~~~~~~~~~~~~~~~~~~主从复制集群
slaveof no one //使自己变主机
info replication //查看当前库的信息
1.复制多个redis.conf配置文件
cp redis.conf redis79.conf
cp redis.conf redis81.conf
cp redis.conf redis81.conf
2.vim redis79.conf 打开vim
3.修改端口
port 6379改为你自己定义的
pidfile /var/run/redis_6379.pid 6379改为你自己定义的端口号
logfile修改日志命名.log避免多个redis使用同一个命名日志
修改dump.rdb文件为dump自定义端口 .rdb
4.从机配置
在6380端口:写SLAVEOF 127.0.0.1 6379 //表示在本机下的6379是主机
~~~~~~~~~~~~~~~~~~~~~~~~哨兵
vim sentinel.conf //创建一个哨兵配置文件
sentinel monitor myredis 127.0.0.1 6379 1 //myredis自定义的名字 表示监控本机的6379端口6379目前是主机,1代表目前主机挂了后重新选举新的主机
redis-sentinel kconfig/sentinel.conf //启动哨兵