redis图形化管理工具_redis的安装

2022-11-04 11:43:14 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

一、redis 的启动停止连接命令

ifconfig 查询ip

———- redis-4.0.11(本机 linux7系统)————

代码语言:javascript复制
cd wslxm/redis/redis-4.0.11                            切到redis目录
./src/redis-server redis.conf                          启动 redis

./src/redis-cli -p 6379 shutdown save                 关闭 redis

ps aux|grep redis                                     查询线程(ps aux所有线程)


 ./src/redis-cli -h 192.168.0.105 -p 6379              连接 redis,quit 退出连接
save: 更新到本地(硬盘),下次启动从本地读取
quit     

其他

代码语言:javascript复制
flushDB                         清空当前db数据(db:数据库)  
flushall                         清空所有db数据   

  
select                             数据库选择(0 ~ 15)
info                               获取服务器信息

dbsize                             当前 db key的数量
keys*                              返回所有key,  keys map*( key 中 key)   
exists                              key 是否存在
del                                 删除 key
rename                            重命名 key
type                 返回值类型(五种储存方式)

----------------- 其他命令 ---------------------------
EXPIRE key seconds         设置key的生存时间(单位:秒)
TTL key               查看key生于的生存时间
PERSIST key             清除生存时间 
PEXPIRE key milliseconds      生存时间设置单位为:毫秒 

二、redisClient可视化工具

下载地址:http://www.uzzf.com/soft/78115.html 下载后直接解压,无需安装,

开启redis服务后,直接运行 .exe 文件运行,输入信息连接即可,其中password,若redis服务为配置密码,则不用填。

成功后界面如下,默认数据库数量为16 db0-db15, 选择数据库(如果是命令行操作,默认是操作db0,要指定其他库,需要select 1(1为数据库下标)),新建自己想建的数据类型即可,这不像关系型数据库,并没有表的概念。

其使用非常简单,自己慢慢玩一会儿就会了的。

RedisClient是Redis客户端的GUI工具,使用Java swt和jedis编写,可以方便开发者浏览Redis数据库。该软件支持简体中文,非常适合国内用户使用,不需要汉化就可以直接使用。RedisClient将redis数据以资源管理器的界面风格呈现给用户,可以帮助redis开发人员和维护人员方便的建立,修改,删除,查询redis数据,完全不需要了解redis命令。可以让用户方便的编辑数据,可以剪切,拷贝,粘贴redis数据,可以导入,导出redis数据,可以对redis数据排序。

1、使用服务器管理,支持服务器密码认证 2、根据喜好管理redis数据 3、管理redis数据,包括: 新的redis数据:字符串String,列表List,哈希hash,集合set,有序集合Sorted set。

2、无法使用ip连接解决 遇到主机redis使用localhost和127.0.0.1都可以访问,但是使用主机ip访问就连接不上,三番查阅终得解药,拿好不谢!

1.打开 redis.conf 文件(redis 安装目录下) 2.将69行处 bind 127.0.0.1注释掉(加#注释)

3.将 88行处 protected-mode yes 改为protected-mode no;

4.重启redis服务,即可使用ip访问redis了

代码语言:javascript复制
./src/redis-cli -p 6379 shutdown save                 关闭 redis
./src/redis-server redis.conf                         启动 redis
ps aux|grep redis                                查看线程
./src/redis-cli -h 192.168.142.128 -p 6379           连接命令

注意:如果在生产环境中,只有主机访问redis,则不需要修改,保证redis数据安全,使用localhost或127.0.0.1访问即可! 3、无法连接防火墙放行 执行下面命令 – 防火墙放行 6379 端口

代码语言:javascript复制
/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

三、java 操作redis(jedis)

redis –> nosql 1、键值对方式储存 2、主要用于大量数据的高服务负载 3、优势,快速查询(集群 –> 多台redis) 4、缺点,缺少关系结构 1、pom依赖 Springboot项目自动装配,非jedis===============

代码语言:javascript复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    <exclusions>
        <exclusion>
            <groupId>io.lettuce</groupId>
            <artifactId>lettuce-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

Maven项目依赖=========================

代码语言:javascript复制
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.1.0</version>
</dependency>

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.3.2</version>
</dependency>

**Jedis 依赖 (只需添加此依赖) **==============================

代码语言:javascript复制
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
</dependency>

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
    <version>2.6.0</version>
</dependency>

2、jedis数据连接 1、连接方式一 优点:自行封装一个连接池对象,每次请求不用重复连接redis数据库

//=================================================================

代码语言:javascript复制
//创建连接
public static void connection(){
    JedisPoolConfig jpc = new JedisPoolConfig();  //创建redis连接池配置对象
    jpc.setMaxIdle(20);     //最大连接空闲数
    jpc.setMaxTotal(50);    //最大连接数
    JedisPool jp = new JedisPool(jpc, "192.168.142.128", 6379); //创建连接池对象
    Jedis jedis = jp.getResource();
    //数据操作
    jp.returnResource(jedis);
}

//=================================================================

2、连接方式二 缺点: jedis 每一次使用都会重新连接redis

代码语言:javascript复制
public void test() {
   Jedis jedis = new Jedis("192.168.100.132", 6379);//获取连接
   jedis.set("address", "beijing");        //保存数据
   String address = jedis.get("address");   //读取数据 
   jedis.close();                           //关闭连接
}
3、连接工具类UtliRedis 
public class UtliRedis {
    //ip地址,端口可以抽离到配置文件
    //==============创建连接池==================
    public static JedisPool connection(){
        //创建redis连接池配置对象
        JedisPoolConfig jpc = new JedisPoolConfig();
        //最大连接空闲数
        jpc.setMaxIdle(20);
        //最大连接数
        jpc.setMaxTotal(50);
        //创建连接池对象
        JedisPool jp = new JedisPool(jpc, "192.168.142.128", 6379);
        return jp;
    }
    //===============归还连接=================
    public static void shutdown(JedisPool jp,Jedis jedis){
        jp.returnResource(jedis);
    }


//调用方法(main)
    public static void main(String[] args) {
        //获取连接   
        JedisPool jp = UtliRedis.connection();
        //获取jedis对象
        Jedis jedis =  jp.getResource();
        //保存数据到redis
        jedis.set("name","wangsong");
        //读取数据
        String nmae = jedis.get("name");
        System.out.println(nmae);
        //归还连接
        UtliRedis.shutdown(jp,jedis);
    }
}

五、数据类型及api

数据类型:  1 、字符串(string)  2、散列(hash)  3、列表(set)  4、集合(list)  5、有序集合(storeset)

1、string 字符串

字符串 全为 键值对模式 (name”,“ws_兮”) ————方法大全 – 对应 linux 和 java方法 —————————–

代码语言:javascript复制
set             添加数据(key存在覆盖原数据)
mset            添加数据(key存在覆盖原数据)
setnx           添加数据(key存在不·储存)
setex           添加数据 1.key  2.key有效期(秒)  3.value
append          key不存在添加数据, key存在追加

get               读取数据key
mget            读取数据key
getrange         截取 1.key  2.开始  3、结束
getSet           获取并更改(类似set 覆盖数据)

del               删除数据(1-成功,0-失败)
flushDB           清空数据

strlen            获取值的长度
exists            判断 key是否存在(1-存在,0-不存在)

java 方法 和 linux 命令 –> 对应方法大全

linux命令举例列——————–

代码语言:javascript复制
set name  ws_兮
get name

java举列————————– value 可以使用集合

代码语言:javascript复制
jedis.set("name", "ws_兮");  
//单值取 
jedis.get("name");   
//多值存
jedis.mset(new String[]{"name"," ws_兮  ","age","18"});
//多值取
jedis.mget(new String[]{"name","age"});

————– 注 ———————- User对象 à json(string) à redis 可以使用 json , 也把所有属性拼成一个 value 值 如:(”name“,“小爱,小美,小溪,小微”) 缺点:取值凌乱,value数据太多无法分辨

2、List 集合

有序,可以重复 key value jedis.lpush(“lists”, “LinkedList”); ———–方法大全 – 对应 linux 和 java方法 —————————–

代码语言:javascript复制
lpush                           向列表左填加元素
rpush                           向列表右填加元素
LINSERT                       插入元素(指定位置)

lrange                          获取区间内元素(所有:  0   -1 ) 
lindex                           获取指定索引值
lset                              获取多个指定索引值
LLEN                             获取元素个数(长度)

LPOP                           列表左弹出一个元素(删除并返回)
RPOP                           列表右弹出一个元素(删除并返回)

LTRIM                           删除 指定范围元素
LREM                           删除指定数量的指定值的元素 -->  LREM key count value        ||
                              count  --> 负数:左边开始删除  正数:右边开始删除   0 :全部删除

----------------------- linux 命令实列 -------------------------------------

lpush list1 2 3 左添加(建议 –> key = list:1) llen list 获取元素个数 lrange list 0 2 获取区间元素(0 2) lrem list 5 lxm 删除 5个value 为 lxm 的元素(从左边)

————————— java 实列 —————————————– value 值可以为集合

代码语言:javascript复制
jedis.lpush("lists", "LinkedList");             //左添加 
jedis.rpush("messages", "Hello how are you?")  //右添加

jedis.lrange("messages", 0, -1)         //获取区间值(索引)
jedis.llen("lists")                      //获取元素长度
jedis.lrem("lists", 1, "vector")        //删除 1个为 vector 的值
jedis.ltrim("lists", 0, 1))              //删除 区间外的值
jedis.lset("lists", 0, "hello list!")   //修改(指定索引)

jedis.sort("lists")                      //排序
jedis.lpop("lists")                      //列表出栈
jedis.lrange("lists", 0, -1)            //整个列表出栈

jedis.flushDB()                          //清空数据

思路: 在redis中创建商品评论列表 用户发布商品评论,将评论信息转成json存储到list中。 用户在页面查询评论列表,从redis中取出json数据展示到页面。 定义商品评论列表key: 商品编号为1001的商品评论key:items: comment:1001 192.168.101.3:7001> LPUSH items:comment:1001 ‘{“id”:1,“name”:“商品不错,很好!!”,“date”:1430295077289}’

3、Set 列表

无序,不能重复 jedis.zadd(“key”,“value”);

————-方法大全 – 对应 linux 和 java方法 —————————-

代码语言:javascript复制
SADD                             添加元素
SREM                             删除元素
SMEMBERS                      获取所有元素
SISMEMBER                     判断是否存在元素(需指定 key和 value) 

——————— linux 示列 ————————————

代码语言:javascript复制
sadd key a b c           添加
srem key  b c            删除

————————java 示列 ———————————

代码语言:javascript复制
jedis.zadd("key","value");    //添加(value,可以为集合)

4、Hash 散列map

hash叫散列类型,字段值只能是字符串类型 key 字段名 字段值 key name == map 如:(“key”,“name”,“ws-兮”)//根据 key name 设置值

——————-方法大全 – 对应 linux 和 java方法 —————————–

代码语言:javascript复制
HSET            设置单值  无字段添加返回 1,有字段覆盖返回 0
HMSET                     设置多值 
HSETNX                    字段不存在添加值    
hincrBy         追加值
 
HGET              取值
HMGET                       取多值,根据设置方式去
HGETALL                     取所有 key下的值
HKEYS                        只取字段名,不取 字段值(字段值 == value)
HVALS                        只取 字段值,不取字段名,
HEXISTS                      判断字段是否存在   
HLEN                          获取字段值的数量   

HDEL                         删除 (成功 返回 1,失败 0)
flushDB              清空

————————- linux 命令举例—————————————

代码语言:javascript复制
hset  user name  小艾                    存单值
hget  user name                           取单值
hmset user id 1 name ws age 20                存多值
hmget user id name age                          取多值

——————java jedis 举例 ————————-

代码语言:javascript复制
jedis.hset("kid", "name","小艾");   存单值
jedis.hget("kid", "name");           取单值
jedis.hdel("kid", "name")            删除

jedis.hmset("kid", map);            存多值,map = 键值对
jedis.hmget("kid");                 获取多值 --> map集合
jedis.hkeys("kid")                  获取所有 map的 key
jedis.hvals("kid")                  获取使用 map的 value
jdis.hlen("kid")                    获取集合长度
jedis.hdel("kid","age");            删除 map 中的某的值
jedis.exists("kid")                 是否存在

jedis.flushDB()                     清空数据

建议用法 ———- HGETALL items:1001

  1. “id”
  2. “3”
  3. “name”
  4. “apple”
  5. “price”
  6. “999.9” key = 对象名 :id (如 items:1001) –> 这样可以通过 对象名 :id获取对应id 的 map集合属性

5、sorted set 有序集合

有序 – 按分数排序 key 分数 value jedis.zadd(“hackers”, 1940, “Alan Kay”);

————-方法大全 – 对应 linux 和 java方法 ——————————–

代码语言:javascript复制
zadd                                    添加 (值:分数 value)
ZRANGE                                获取指定索引的区间值 (从小到大排序)
ZREVRANGE                           获取指定索引的区间值 (从大到小排序)
ZRANGEBYSCORE                     获取指定分数的区间值 

ZSCORE                                 获取分数 (key   value)
ZINCRBY                                增加分数

ZCARD                                   获取元素数量 
ZCOUNT                                 获取元素数量(指定分数范围) 
ZRANK                                   获取元素排名(小到大)
ZREVRANK                               获取元素排名(大到小)

zrem                                     删除(key   value)
ZREMRANGEBYRANK                 删除(索引范围)
ZREMRANGEBYSCORE                删除(分数范围)

—————————- linux 示·列———————————————–

代码语言:javascript复制
zadd key 80 zhangsan 89 lisi           添加(分数存在更新分数)
zrange key 0 2                           获取指定索引的区间值(从小到大)
zrange key 0 1 WITHSCORES           同上(   外加获取分数)

—————————- java 示·列 ———————————————– value 值可以为集合

代码语言:javascript复制
jedis.zadd("hackers", 1940, "Alan Kay"); //添加 
jedis.zrange("hackers", 0, -1)            //获取区间值(小到大)
jedis.zrevrange("hackers", 0, -1)        //获取区间值(大到小)

jedis.zscore("zset", "value")      //获取value值的分数
jedis.zcard("zset")                 //获取元素数量

jedis.zrem("zset", "zset!")       //删除
jedis.flushDB()                    //清空数据                 
  • 本文到此结束,如果觉得有用,动动小手点赞或关注一下呗,将不定时持续更新更多的内容…,感谢大家的观看!

关注公众号【兮家】,不定时分享干货内容哦

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182809.html原文链接:https://javaforall.cn

0 人点赞