文章目录
1、redis安装基本命令
- 安装默认目录:/usr/local/bin (redis-server:redis服务启动命令,redis-cli:客户端,操作入口)
- 设置后台启动,cp /opt/redis-3.2.5/redis.conf /etc;启动命令 redis-server /etc/redis.conf
- ps -ef | grep redis查看进程端口,kill -9 端口
- 在/usr/local/bin下 redis-cli进入redis客户端setget
2、常用五大数据类型
2.1、String字符串
- 数据结构为简单的动态字符串,内部实现类似于arrayList,字符串最大长度为512M。
- 原子性,不会被线程调度机制打断的操作
2.2、List列表
- 数据结构为双向链表
- 元素少情况下为ziplist(压缩列表)
2.3、Set集合
- set是string类型的无序集合,底层是一个value为null的hash表(hashtable)
- set是可以自动去重的
2.4、Hash哈希
- hash是一个键值对集合
- hash是一个string类型的field和value的映射表,hash特别适合存储对象,类型map
2.5、Zset有序集合
- zset是一个没有重复元素有顺序的字符串集合
- 每个成员关联了一个评分(score),此评分被用来按照从低到高方式排序集合中的成员。
- 底层结构hash保障数据唯一,跳跃表设置排序
3、新数据类型
3.1、Bitmaps(位操作)
- Bitmaps本身不是一种数据类型,实际就是01的字符串,可以把Bitmaps想象成一个以为为单位的数组,数组每个单位智能存储0和1,数组的下标在Bitmap中叫偏移量。
- 设置偏移量,设置的为1,不设置的都为0
- bitcount统计数据
- bittop 可以查交集并集非等操作
3.2、HyperLogLog
- 解决大量数据的基数问题,类似set去重,但是占用空间少
3.3、Geospatial
- 该类型就是元素的二维坐标,就是经纬度。
- 计算两地的距离
4、Jedis操作
4.1、测试连接redis
Jedis jedis = new Jedis("192.168.75.128", 6379);
String ping = jedis.ping();
//测试redis是否连接成功
System.out.println("连接成功返回标志:"+ping);
连接成功返回标志:PONG
4.2、string类型
//获取所有的key
Set<String> keys = jedis.keys("*");
System.out.println("查询所有key:"+keys);
//设置String类型key-value
jedis.set("name","张三");
jedis.set("age","10");
//通过key查询value
String age = jedis.get("age");
System.out.println("查询key为age的值:"+age);
//判断key是否存在
Boolean exists = jedis.exists("age");
System.out.println("查看key为age的键值对是否存在:"+exists);
//每次incr,value值+1,只能数字字符串,否则报错
jedis.set("k11","123");
jedis.incr("k11");
//设置key过期时间
jedis.expire("age", 100);
//设置多个key-value
jedis.mset("str1","v1","str2","v2","str3","v3");
//获取多个key
List<String> mget = jedis.mget("str1", "str2", "str3");
System.out.println("查询key为str1、str2、str3多个key的值为:"+mget);
查询所有key:[name, str3, k1, str1, k2, str2]
查询key为age的值:10
查看key为age的键值对是否存在:true
查询key为str1、str2、str3多个key的值为:[v1, v2, v3]
4.3、List类型
//设置list
jedis.lpush("nameList","lucy","mary","jack");
//获取所有的值
List<String> nameList = jedis.lrange("nameList", 0, -1);
System.out.println("获取list值"+nameList);
获取list值[jack, mary, lucy]
4.4、Set类型
//设置set
jedis.sadd("ageSet","1","2","2","3");
Set<String> ageSet = jedis.smembers("ageSet");
System.out.println("获取set值:"+ageSet);
获取set值:[1, 2, 3]
4.5、Hash类型
//设置hash值
jedis.hset("user","name","张三");
jedis.hset("user","age","12");
String name = jedis.hget("user", "name");
System.out.println("获取hash值:"+name);
//或者map形式
Map<String, String> hashMap = new HashMap<>();
hashMap.put("name1","李四");
hashMap.put("age1","15");
jedis.hset("user1",hashMap);
String name1 = jedis.hget("uer1", "name1");
System.out.println("获取hashMap值:"+name1);
获取hash值:张三
获取hashMap值:李四
4.6、Zset类型
//zset类型
jedis.zadd("china",100,"shanghai");
jedis.zadd("china",110,"beijing");
jedis.zadd("china",90,"gaugnzhou");
Set<String> china = jedis.zrange("china", 0, -1);
System.out.println("获取所有的zset值:"+china);
获取所有的zset值:[gaugnzhou, shanghai, beijing]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/148668.html