Redis

启动Redis服务和客户端

和mysql的启动方式不一样,注意区别。以后大多都是再用类似Redis这种方式,安装后将命令扔到一个目录下,一般都是全局环境变量path对于的路径,
在这里插入图片描述
在这里插入图片描述

1、指定配置文件启动Redis服务

redis-server /myredis/redis.conf

redis-server /myredis/redis.conf 后面指定的配置文件,是自己修改过后的配置文件,不是其原来的,因为按照原来的配置文件,启动的方式是阻塞的,启动后不能直接在后面输入命令,而是要单独开一个窗口,输入其他命令,所以进行了一定的修改。在这里指定的是自己的配置文件,若不指定,则用的默认配置文件
2、查看Redis服务是否启动成功

ps -aux|grep redis

3、通过redis-cli连接Redis服务端

redis-cli
redis-cli -h 127.0.0.1 -p 6379

4、关闭Redis服务端和客户端
4.1 在连接成功的redis-cli的窗口中执行ctrl+c只会关闭客户端

Ctrl+C

4.2、关闭服务器
如果redis-cli已经连接了redis服务端,执行:shutdown,可以关闭客户端和服务端。
如果redis-cli没有连接了redis服务端,redis-cli -h ip地址 -p 端口号 shutdown

Redis和memcached的区别

redis采用单线程+多路IO复用的技术,提高性能;
memcached采用串行+多线程+锁的方式,提高性能(性能较差);
redis数据类型多,支持持久化;memcached只支持string;

同时有多个请求,redis是单线程方式,只有一个线程处理请求,其会采用多路IO复用技术去处理请求,由于数据存在内存里面,处理起来比较快,每个请求进来的时候,直接将命令执行完成,然后处理下一个。memcached会开启多线程,每个请求进来的时候会对应一个线程,线程会接收请求,最终处理的时候对数据加了锁,也就是只能处理一个线程对应的请求,处理完之后处理下一个。

Redis五大数据类型

String
List
Set
hash
zset

Redis内存淘汰策略(面试会问)

在这里插入图片描述
设置redis可以使用的服务器的内存的大小【一般如果服务器只启动redis,一般可以设置为服务器内存的80%】
以后Redis中存储的数据大小如果达到了设置的manmemory的大小,如果再次有新的写操作,redis还需要配置内存淘汰策略,处理更新操作。
在这里插入图片描述
redis内存淘汰策略,默认是noeviction。

 564 # volatile-lru -> Evict using approximated LRU among the keys with an expire set.
 使用LRU算法,在拥有过期时间的key中进行移除
 565 # allkeys-lru -> Evict any key using approximated LRU.
 所有的key都采用LRU的算法移除
 566 # volatile-lfu -> Evict using approximated LFU among the keys with an expire set.
 使用LFU算法,在拥有过期时间的key中进行移除
 567 # allkeys-lfu -> Evict any key using approximated LFU.
 所有的key都采用LFU的算法移除
 568 # volatile-random -> Remove a random key among the ones with an expire set.
  使用random算法,在拥有过期时间的key中进行移除
 569 # allkeys-random -> Remove a random key, any key.
  所有的key都采用随机的方式移除
 570 # volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
 针对所有的有过期时间的key,优先移除即将过期的
 571 # noeviction -> Don't evict anything, just return an error on write operations.
 不删除Redis中的数据,当内存满了,有新的写操作时,只是返回一个错误。
 572 #
 573 # LRU means Least Recently Used:最近最少使用(按时间来算,数据使用时间距离现在最远的数据优先溢出)
 574 # LFU means Least Frequently Used:最近最不频繁使用(每个数据使用的时候都统计了使用次数,最近使用次数最少的数据优先移除)

在这里插入图片描述
Redis使用淘汰策略时,只是根据抽样数据进行移除。maxmemory-samples就是抽样数据 的样例数量。设置值的范围一般是3-10,10比较精确,但是消耗CPU性能,3消耗性能少,但是数据不够精确。5比较合适。

jedis

java连接虚拟机的Redis的步骤
1、创建maven工程
2、引入依赖驱动包

<dependencies>
       <dependency>
           <groupId>redis.clients</groupId>
           <artifactId>jedis</artifactId>
           <version>2.9.0</version>
       </dependency>
   </dependencies>

3、创建redis连接对象操作redis,关闭连接
4、如果报错
原因1:防火墙没关闭
原因2:Redis以保护模式启动,以远程不能连接
关闭保护模式
注释bind 127.0.0.1
修改protected-mode 为 no
小例子:

public class JedisTest {
    public static void main(String[] args) {
        // 创建redis连接对象Jedis
        Jedis jedis = new Jedis("192.168.200.130",6379);
        // 发送redis命令让redis服务端执行
//        String ping = jedis.ping();
//        System.out.println("ping="+ping);
        Map<String, Double> members=new HashMap<>();
        members.put("lijei",90.0);
        members.put("kpjo",94.2);
        members.put("fojo",71.5);
        members.put("qoqoo",81.2);
        members.put("bopa",61.5);
        members.put("xigi",91.6);
        jedis.zadd("scores",members);
        Set<Tuple> tuples = jedis.zrevrangeWithScores("scores", 0, 2);
        int i =0;
        for(Tuple tuple:tuples){
            System.out.println("第"+(++i)+"名:"+tuple.getElement()+",分数:"+tuple.getScore());
        }
        jedis.del("scores");
        jedis.close();

    }
}

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值