首页 > 数据库 >redis-1

redis-1

时间:2024-12-29 18:55:24浏览次数:1  
标签:bin redis System jedis usr println

nosql
cpu,内存和磁盘的关系

nosql简介
NoSQL(not only sql),泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模(京东,淘宝,天猫.......)和高并发的SNS(社交平台)类型的web2.0纯动态网站已经显得力不从心(基于磁盘存储),出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点(基于内存存储)得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类(文字,图片,视频,音频等等)带来的挑战,特别是大数据应用难题。
常见nosql框架
hbase,memcached,redis,mongodb等等
sql和nosql区别

redis简介和特点
简介
https://www.redis.net.cn/#google_vignette
Redis(Remote Dictionary Server远程字典服务)是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。redis使用C语言编写。
特点
速度快:读速度110000次/秒 写速度81000次/秒
支持事务:提供multi,exec,discard等关键字支持事务。
支持持久化:支持RDB和AOF持久化。
支持多种语言:

等等
单机版redis搭建
克隆虚拟机
修改IP和主机名称,重启

vi  /etc/sysconfig/network-scripts/ifcfg-ens33
:15    修改IP     最后一位改为21
vi  /etc/hostname
:1    修改主机名称    redis1
reboot

使用xshell链接
输入链接主机名称和IP
输入用户名和密码
修改颜色主题,编码方式,字体大小
上传redis安装包到redis1中
创建目录:
mkdir /opt/software
进入目录:
cd /opt/software/
使用xftp上传安装包到redis
ll
搭建redis
创建目录:
mkdir /usr/redis
源码安装redis,需要安装C语言的编译器:
yum -y install gcc-c++
(如果已经安装提示是最新版本)
解压redis到新建目录:
tar -xzvf /opt/software/redis-5.0.5.tar.gz -C /usr/redis/
进入解压目录:
cd /usr/redis/redis-5.0.5/
编译,安装: (PREFIX前缀,指定安装路径)
make && make install PREFIX=/usr/redis/
(时间久)
查看是否安装成功(有bin说明成功):
ls /usr/redis/
启动服务端,并使用客户端链接
非守护方式启动服务端:/usr/redis/bin/redis-server

启动客户端,链接服务器:
/usr/redis/bin/redis-cli

keys * (查看所有数据)
set a 1 设置一个key为a value为1
keys * (查看所有数据)
shutdown save 客户端关闭服务器,并且持久化数据

再次启动服务器,再次使用客户端链接:

set b 2
keys * (查看所有数据)
shutdown nosave 客户端关闭服务器,不持久化数据

再次链接,再次查看,发现没有b

守护方式启动服务端:
1,复制redis.conf文件
cp /usr/redis/redis-5.0.5/redis.conf /usr/redis/bin/
2,查看是否成功
ls /usr/redis/bin/
3,修改配置文件
vim /usr/redis/bin/redis.conf
4,修改136行
:136 回车 no->yes
:wq 保存退出
5,再次启动redis服务端:
/usr/redis/bin/redis-server /usr/redis/bin/redis.conf
6, 查看是否启动成功
ps -ef |grep redis (能看到redis-server进程就成功了)
7,再次使用客户端链接:
/usr/redis/bin/redis-cli
redis常用命令
和connection相关的

redis常用命令



5种数据类型





java的redis的API
简介
jedis 是redis java连接工具 ,引入jar包后,就可以使用java代码操作redis。
redis修改远程可以连接

vim /usr/redis/bin/redis.conf 
          :69    bind 127.0.0.1
       把当前redis实例和本机127.0.0.1进行绑定,只能本机客户端进行连接
      如果想让其他任何机器进行访问该实例,需要把该实例与当前主机IP进行绑定
           :69    bind 192.168.xxx.41
     从新启动服务
     /usr/redis/bin/redis-server  /usr/redis/bin/redis.conf    
     使用客户端直接连接时出错
     /usr/redis/bin/redis-cli  
     连接要换为连接IP地址:
      /usr/redis/bin/redis-cli  -h  192.168.170.31

创建项目引入jar,编写代码
引入jar

<!-- jedis包 -->
<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>4.2.2</version>
</dependency>  
package com.aaa.jedis.demo;
import redis.clients.jedis.Jedis;
import java.util.Set;
/**
 * @ fileName:ConncetRedisTest
 * @ description:
 * @ author:zhz
 * @ createTime:2022/4/28 10:08
 * @ version:1.0.0
 */
public class ConncetRedisTest {
    public static void main(String[] args) {
        //查看源码,会看到使用host和port的构造
        Jedis jedis =new Jedis("192.168.170.31",6379);
        //测试是否可以联通
        String pingResult = jedis.ping();
        System.out.println("是否通:"+pingResult);
        if(!"PONG".equals(pingResult)){
            System.out.println("连不通");
            return;
        }
        System.out.println("连通");
        //查询
        Set<String> keyList = jedis.keys("*");
        System.out.println("已经存储的key为:");
        for (String key : keyList) {
            System.out.println(key);
        }
        System.out.println("------------------------------");
        //进行字符串操作
         jedis.set("aaa", "111");
        String aaa = jedis.get("aaa");
        System.out.println(aaa);
        //进行hash操作
        //进行list操作
        //....
//字符串 string
        jedis.set("aaa", "111");
        // 获取存储的数据并输出
        System.out.println("redis 存储的字符串为: "+ jedis.get("aaa"));
 
       在虚拟机里面测试,客户端链接
        ./redis-cli -h 192.168.182.20   
 
        //散列 hashmap
        Map<String, String> map = new HashMap();
        map.put("userName", "scott");
        map.put("password", "tiger");
        map.put("age", "100");
        // 将map存入redis中
        jedis.hmset("mapa", map);
 
        // 取出redis中的map进行遍历
        Map<String, String> userMap = jedis.hgetAll("mapa");
        for (Map.Entry<String, String> item : userMap.entrySet()) {
            System.out.println(item.getKey() + " : " + item.getValue());
        }
 
        // 列表 list
        jedis.lpush("lista", "111");
        jedis.lpush("lista", "222");
        jedis.lpush("lista", "333");
        // 获取存储的数据并输出
        List<String> list = jedis.lrange("lista", 0 ,2);
        for(int i=0; i<list.size(); i++) {
            System.out.println("列表项为: "+list.get(i));
        }
        // 集合 set
        jedis.sadd("course","java","c","c#","java","python");
        // 自动去重
        System.out.println(jedis.smembers("course"));
 
        //有序集合 sorted set
        Map<String,Double> map1 = new HashMap<>();
        map1.put("python",2.0);
        map1.put("java",1.0);
        map1.put("bigdata",3.0);
        map1.put("AI",4.0);
        jedis.zadd("mysort", map1);
        //正序排列
        Set<String> mysort = jedis.zrange("mysort",0,-1);
        System.out.println(mysort);
      
        //Keys 实例
        // 获取数据并输出
        Set<String> keys = jedis.keys("*");
        Iterator<String> it=keys.iterator() ;
        while(it.hasNext()){
            String key = it.next();
            System.out.println(key);
        }
    }
}

标签:bin,redis,System,jedis,usr,println
From: https://www.cnblogs.com/xiaomubupi/p/18639377

相关文章

  • 2024-12-25《linux上安装redis报错》
     在linux上安装redis时,首先要安装c/c++编译器,然后安装redis,不然redis跑不了,安装时报错:cdsrc&&makeallmake[1]:Enteringdirectory'/opt/redis-7.0.0/src'CCMakefile.depCCserver.oInfileincludedfromserver.c:30:server.h:57:10:fatalerror:systemd......
  • 腾讯音乐:说说Redis脑裂问题?
    Redis脑裂问题是指,在Redis哨兵模式或集群模式中,由于网络原因,导致主节点(Master)与哨兵(Sentinel)和从节点(Slave)的通讯中断,此时哨兵就会误以为主节点已宕机,就会在从节点中选举出一个新的主节点,此时Redis的集群中就出现了两个主节点的问题,就是Redis脑裂问题。脑裂问题影响......
  • linux中,redis哨兵和数据持久化存储
    redis哨兵:"主从同步增强架构","读写分离","高可用" 1.概念 是Redis主从同步的增强架构,可以实现Redis主从同步的读写分离和高可用 2.特性: 1、可以承接客户端连接,但不存储数据 2、实现Redis主从复制组的监控 3、实现Redis主从的读写分离 4、Redis主从复制组的故......
  • Redis-十大数据类型
    Reids数据类型指的是value的类型,key都是字符串redis-server:启动redis服务redis-cli:进入redis交互式终端常用的key的操作redis的命令和参数不区分大小写,key和value区分1、查看当前库所有的keykeys*2、判断某个key是否存在existskey3、查看key是什么类型......
  • Redis可视化工具推荐:Another Redis Desktop Manager使用教程与下载
    Redis是一种高性能的Key-Value数据库,被广泛应用于缓存、消息队列等场景。尽管Redis的命令行工具功能强大,但对于许多开发者而言,使用一款可视化工具可以大大提高操作效率和用户体验。今天为大家推荐一款功能强大的Redis可视化工具——AnotherRedisDesktopManager,并提供资源......
  • redis缓存穿透和 缓存雪崩
    在使用Redis作为缓存系统时,缓存穿透(CachePenetration)和缓存雪崩(CacheAvalanche)是两种常见的问题。它们会影响缓存系统的性能和稳定性。以下是这两种问题的详细解释及其解决方法。缓存穿透(CachePenetration)缓存穿透是指查询一个在缓存和数据库中都不存在的数据,导致请求直接......
  • 【Redis Zset】Redis Zset多字段排序方案设计
    背景最近拿到多个排行榜相关的需求,按财富值,魅力值等单个或多个字段进行排序默认取前N条数据,考虑使用Redis进行排行榜实现,数据结构使用zset,本文对财富值和魅力值二个或多个字段排序的思路进行说明; 需求背景排行榜,按财富值和魅力值进行倒序排序,优先财富值排序,财富值相同则取魅......
  • 日志文件爆满_开发脚本每小时自动检测日志大小_定期清理日志_生产环境redis宕机_无法
     今天日志数据占用磁盘爆满,正常运行的系统发生,redis无法写入的报错,导致共用的redis服务器,瘫痪了,很多系统都进不去了. 最后查了一下才知道,是因为磁盘上一个日志文件170多GB了,都是日志.看看怎么处理:首先编写一个脚本,用来循环检测,每一个小时检测文件大小,如果超过......
  • Redis篇--应用篇1--会话存储(session共享)
    1、概述实现Session共享是构建分布式Web应用时的一个重要需求,尤其是在水平扩展和高可用性要求较高的场景下。在分布式服务或集群服务中往往会出现这样一个问题:用户登录A服务后可以正常访问A服务中的接口。但是我们知道,分布式服务通常都是有多个微服务一起构建形成的。如果......
  • (九).NET6.0搭建基于Redis的Hangfire定时器
    1.首先创建新的类库项目Wsk.Core.Hangfire,然后在Wsk.Core.Package包项目下引用hangfire有关的组件,包括Hangfire、Hangfire.Core、Hangfire.Redis、Hangfire.Redis.StaskExchange2.在配置文件新增基于redis的hangfire的数据库连接3.在Wsk.Core.Hangfire项目下,新增Hangfire连......