Linux下Redis安装、配置及客户端开发
Linux下Redis安装、配置及客户端开发
小林攻城狮 发表于3个月前
Linux下Redis安装、配置及客户端开发
  • 发表于 3个月前
  • 阅读 15
  • 收藏 0
  • 点赞 0
  • 评论 0
摘要: redis安装、配置、jedis客户端开发

1.安装

可选步骤:安装gcc:yum install gcc-c++

  1. 下载地址:http://redis.cn/download.html
  2. 解压:tar -xzvf redis-4.0.1.tar.gz -C /opt/software
  3. 编译:进入到安装目录(/opt/software/redis-4.0.1),执行make
  4. 安装:进入到src目录(/opt/software/redis-4.0.1/src),执行make install
  5. 安装完成

2.配置

  1. 复制配置文redis.conf件到 /opt/module/redis.conf
  2. 设置后台启动:daemonize yes

3.常用命令

  • 启动:redis-server /opt/module/redis.conf
  • 关闭:redis-cli shutdown(设置密码后关机:./redis-cli -a root shutdown)
  • 连接:redis-cli
  • 设置密码:config set requirepass root(设置连接密码为root)
  • 输入连接密码:auth root
  • 增加记录:set [key] [value]
  • 获取值:get [key]
  • 删除记录:del [key]
  • 所有记录:keys *
  • 所有key总数:dbsize

4.jedis开发

  1. 依赖
<dependency>
	<groupId>redis.clients</groupId>
	<artifactId>jedis</artifactId>
	<version>2.9.0</version>
</dependency>
  1. Java代码
Jedis jedis=new Jedis("192.168.180.129",6379); // 创建客户端 设置IP和端口
jedis.auth("root");
jedis.set("hello", "Hello, redis!");
Set<String> keys = jedis.keys("*");
for(String key : keys) {
	System.out.println("key:"+key+", value:"+jedis.get(key));
}
jedis.close(); // 释放连接资源
  1. 异常处理(连接超时)
  • 更改防火墙设置
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
  • 注释本机绑定设置 在redis配置文件中,注释 bind 127.0.0.1
  • 关闭自我保护
protected-mode yes 更改为 no
  1. redis连接池
JedisPoolConfig config=new JedisPoolConfig(); // 连接池的配置对象
config.setMaxTotal(100); // 设置最大连接数
config.setMaxIdle(10); // 设置最大空闲连接数  
JedisPool jedisPool=new JedisPool(config,"192.168.180.129",6379);
Jedis jedis=null;
try{
           jedis=jedisPool.getResource(); // 获取连接
           jedis.auth("root"); // 设置密码
           jedis.set("hello", "Hello, redis!");
           Set<String> keys = jedis.keys("*");
           for(String key : keys) {
	         System.out.println("key:"+key+", value:"+jedis.get(key));
           }           
}catch(Exception e){
            e.printStackTrace();
}finally{
            if(jedis!=null){
                jedis.close();
            }
            if(jedisPool!=null){
                jedisPool.close();
            }
}

5.数据结构

  1. 键(key)
  • keys *
  • exists key的名字:判断某个key是否存在
  • move key db :当前库就没有了,被移除,相当于剪切操作
  • expire key 秒钟:为给定key设置过期时间
  • ttl key:查看还有多少秒过期,-1表示永不过期,-2表示已过期
  • type key:查看key是什么类型

2.字符串(String)

  • set/get/del/append/strlen
  • incr/decr/incrby/decrby:一定要是数字才能加减
  • getrange/setrange:类似于substring
  • setex(set with expire)键秒值/setnx(set if not exist)
  • mset/mget/msetnx:批量操作
  • getset:先get再set

3.列表(List)

  • lpush/rpush/lrange(l:left:先进后出,r:right:先进先出,lrange list 0 -1)
  • lpop/rpop(l:left:栈顶移出,r:right:栈底移出)
  • lindex:按照索引下标获得元素(从上到下)
  • llen:list长度
  • lrem key 删除N个 value:(lrem list 2 3,删除list中2个3)
  • ltrim key 开始index 结束index:截取指定范围的值后再复制给key
  • rpoplpush 源列表 目的列表:
  • lset key index value
  • linsert key before/after 值1 值2

4.集合(Set)

  • sadd/smembers/sismember
  • scard:获取集合中的元素个数
  • srem key value:删除集合中的元素
  • srandmember key 某个整数:随机出几个数
  • spop key:随机出栈
  • smove key1 key2 key1中某个值:将key1中的某个值赋给key2
  • 数学集合列,sdiff(差集),sinter(交集),sunion(并集)

5.哈希(Hash)

  • hset/ hget/hmset/hmget/hgetall/hdel
  • hlen
  • hexists key 在key中的某个值得key
  • hkeys/hvals
  • hincrby/hincrbyfloat
  • hsetnx

6.有序集合(Sorted set)

  • zadd/zrange(zset key score value,zrange key 0 -1 【withscores】)
  • zrangebyscore key 开始score 结束score(withscores,【(】不包含,limit start len)
  • zrem key 某score下对应的value值,作用是删除元素
  • zcard/zcount key score区间/zrank key values值:作用是获得下标值/zscore key对应值,获得分数
  • zrevrank key values值:作用是逆序获得下标值
  • zrevrange
  • zrevrangebyscore key 结束score 开始score

6.主从复制

  • info replication:查看主从配置信息
  • slaveof [ip_addr] [port]:配置从机的主机
  • slaveof no one:从机变主机

7.哨兵模式

  • sentinel monitor <master-name> <ip> <redis-port> <quorum>
  • redis-sentinel [sentinel配置文件]
共有 人打赏支持
粉丝 4
博文 9
码字总数 2385
×
小林攻城狮
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: