首页 > 其他 > 详细

Redis

时间:2021-02-05 15:17:06      阅读:28      评论:0      收藏:0      [点我收藏+]
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     //启动哨兵

 

Redis

原文:https://www.cnblogs.com/lizehong/p/14377756.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!