Redis缓存技术(课时一windows)
第一部分回顾java基础集合(基础不牢一切白学,地基不牢在高级的框架已也不会)
Java基础 集合的分类:
@1ArrayList的讲解
package arraylist;
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListDemo1 {
/**
* @param args
*/
public static void main(String[] args) {
// 1.创建一个集合
ArrayList list = new ArrayList();
//2.给集合添加元素
//创建学生对象
Student stu1 = new Student("狐疑",18);
Student stu2 = new Student("糊涂",19);
Student stu3 = new Student("呼啸",20);
Student stu4 = new Student("环宇",21);
list.add(stu1);
list.add(stu2);
list.add(stu3);
list.add(stu4);
list.hashCode();
//3.删除集合中的指定元素 boolean remove(int index)
list.remove(0);
//4.获取集合中指定索引的元素 Object get(int index)
System.out.println(list.get(0));
//5.修改集合中指定元素的值
//public E set(int index,E element)修改指定索引处的元素,返回被修改的元素
list.set(2, new Student("maomao",21));
//返回集合中元素的个数 int size()
int count = list.size();
System.out.println("集合中的元素个数为:"+count);
System.out.println("何为编程?");
//遍历元素
System.out.println("遍历元素第一种方式·");
for (int i = 0; i < args.length; i++) {
String string = args[i];
System.out.println(i);
}
System.out.println(list);
System.out.println("遍历第二种方式");
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Object object = (Object) iterator.next();
System.out.println(list);
System.out.println(list.size());
}
System.out.println("第三种方式");
for (Object object : list) {
System.out.println(list);
}
}
}
package arraylist;
/**
*创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历集合的所有元素
*1.创建一个集合
*2.往集合中添加3个字符串
*3.遍历集合:首先要能获取到集合中的每一个元素,这个通过get(int index)方法去实现
*4.遍历集合:其次要能够获取到集合中的长度,这个通过size()方法去实现
*
* @author Administrator
*
*/
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListDemo2 {
/**
* @param args
*/
public static void main(String[] args) {
//1.创建一个集合
ArrayList list = new ArrayList();
//2.往集合中添加3个字符串
list.add("诸葛亮");
list.add("刘备");
list.add("张飞");
list.add("李四");
list.add("我是list集合");
//3-4遍历集合
for(int i=0;i
package arraylist;
public class Student {
private String name;
private int age;
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Student() {
super();
// TODO Auto-generated constructor stub
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "Student[age="+age+",name="+name+"]";
}
@Override
public int hashCode() {
// TODO Auto-generated method stub
return super.hashCode();
}
}
@2LinkedList的讲解
package LinkedList;
import java.util.LinkedList;
import java.util.List;
public class LinkedListTest{
public static - void main(String[] args) {
LinkedList
lList = new LinkedList();
lList.add("stu");
lList.add("stu1");
lList.add("stu2");
lList.add("stu3");
lList.add("stu4");
lList.add("stu5");
lList.add("stu6");
lList.add("stu7");
lList.add("stu8");
lList.add("stu9");
System.out.println("链表的第一个元素是 : " + lList.getFirst());
System.out.println("链表最后一个元素是 : " + lList.getLast());
for (String str: lList) {
System.out.println(str);
}
List subl = lList.subList(1, 6);
System.out.println(subl);
lList.remove(2);
System.out.println(lList);
System.out.println(lList);
}
}
@3Hashset的讲解
package com.set;
public class Student {
private String name;
private int age;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the age
*/
public int getAge() {
return age;
}
/**
* @param age the age to set
*/
public void setAge(int age) {
this.age = age;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
//@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}
package com.set;
/**
* - Hash Set 集合保证元素唯一性的原理
1.根据对象的哈希值计算存储位置
如果当前位置没有元素则直接存入
如果当前位置有元素存在,则进入第二步
2.当前元素的元素和已经存在的元素比较哈希值
如果哈希值不同,则将当前元素进行存储
如果哈希值相同,则进入第三步
3.通过equals()方法比较两个元素的内容
如果内容不相同,则将当前元素进行存储
如果内容相同,则不存储当前元素
-
* @author MZFAITHDREAM
*
*/
public class HashsetText1 {
/**
* 哈希值根据地址,字符串,数字类型。
* @param args
*/
public static void main(String[] args) {
//创建学生对象
Student stu =new Student("xangxang",34);
System.out.println(stu);
System.out.println(stu.hashCode());
System.out.println("===============================");
Student stu1 =new Student("tyuop",34);
System.out.println(stu1);
System.out.println(stu1.hashCode());
System.out.println("================================");
//查看哈希值二个对象
Student stu2 =new Student("maomao",37);
System.out.println(stu2);
System.out.println(stu2.hashCode());
//查看哈希值三个对象
Student stu3 =new Student("nopains nogains",34);
System.out.println(stu3);
System.out.println(stu3.hashCode());
//查看哈希值四个对象
Student stu4 =new Student("nopains nogains",34);
System.out.println(stu4);
System.out.println(stu4.hashCode());
System.out.println("================================");
//查看哈希值五个对象
Student stu5 =new Student("nopains nogains",34);
System.out.println(stu5);
System.out.println(stu5.hashCode());
//查看哈希值六个对象
Student stu6 =new Student("nopains nogains",34);
System.out.println(stu6);
System.out.println(stu6.hashCode());
System.out.println(stu6.hashCode());
}
}
package com.set;
/**
* - Hash Set 集合保证元素唯一性的原理
1.根据对象的哈希值计算存储位置
如果当前位置没有元素则直接存入
如果当前位置有元素存在,则进入第二步
2.当前元素的元素和已经存在的元素比较哈希值
如果哈希值不同,则将当前元素进行存储
如果哈希值相同,则进入第三步
3.通过equals()方法比较两个元素的内容
如果内容不相同,则将当前元素进行存储
如果内容相同,则不存储当前元素
-
* @author MZFAITHDREAM
*
*/
public class HashsetText2 {
/**
* 哈希值根据地址,字符串,数字类型。
* @param args
*/
public static void main(String[] args) {
//创建学生对象
Student stu =new Student("小小程序员",34);
System.out.println(stu);
System.out.println(stu.hashCode());
System.out.println("===============================");
Student stu1 =new Student("com on",34);
System.out.println(stu1);
System.out.println(stu1.hashCode());
System.out.println("================================");
//查看哈希值二个对象
Student stu2 =new Student("毛毛非",37);
System.out.println(stu2);
System.out.println(stu2.hashCode());
//查看哈希值三个对象
Student stu3 =new Student("星星胡i11nogains",34);
System.out.println(stu3);
System.out.println(stu3.hashCode());
//查看哈希值四个对象
Student stu4 =new Student("nopains nogains",34);
System.out.println(stu4);
System.out.println(stu4.hashCode());
System.out.println("================================");
//查看哈希值五个对象
Student stu5 =new Student("nopains nogains",34);
System.out.println(stu5);
System.out.println(stu5.hashCode());
//查看哈希值六个对象
Student stu6 =new Student("nopains nogains",34);
System.out.println(stu6);
System.out.println(stu6.hashCode());
System.out.println(stu6.hashCode());
}
}
package com.set;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class HashSetTest2 {
public static void main(String[] args) {
Set s=new HashSet();
s.add("avvvv");
s.add("abvvvvv");
s.add("abcvvvvvv");
s.add("abcd");
//增强for循化
for (String string : s) {
System.out.println(string);
}
System.out.println("************1111*****元素******************遍历*********");
for (String string : s) {
System.out.println(s);
}
System.out.println("=========222===集合=======遍历*===============");
迭代器:集合特有的遍历方式
System.out.println(s);
for (Iterator iterator = s.iterator(); iterator.hasNext();) {
String string = (String) iterator.next();
System.out.println(string);
}
System.out.println("=======3333==========*集合遍历*=========");
System.out.println(s);
for (Iterator iterator = s.iterator(); iterator.hasNext();) {
String string = (String) iterator.next();
System.out.println(s);
}
System.out.println("********4444*******元素*****************遍历*****************");
System.out.println("------------------------");
for (int i = 0; i
@4Set的讲解
package com.set;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Set2 {
public static void main(String[] args) {
Set s=new HashSet();
s.add("今天天青");
s.add("行万里路");
s.add("加强学习java");
s.add("自强不息");
s.add("好好学习");
for (int i = 0; i
@5HashMap的讲解
package Map;
import java.util.HashMap;
import java.util.Iterator;
/**
* map 为接口
* @author MZFAITHDREAM
*
*/
public class HashMapDemo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashMap map =new HashMap();
//增加元素put(k key,v value)键值对 将指定的值增加map表中
map.put("name", "机熊机");
map.put("sex", "nan");
map.put("id", "2345689");
map.put("height", "145");
map.put("name", "即可不一");
//修改元素
map.put("name", "tee");
//删除元素 map.remove(object key):根据主键值对应元素
map.remove("id");
//打印map
System.out.println(map);
/*
* int size() 集合的长度
*/
int size=map.size();
System.out.println(size);
//
map.clear();
System.out.println(map);
/*
* 判断是否为空
*/
System.out.println(map.isEmpty());
System.out.println(map);
}
}
package Map;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class HashMapDemo2 {
private static Object key;
public static void main(String[] args) {
HashMap map =new HashMap();
map.put("name", "机熊");
map.put("sex", "nan");
map.put("id", "2345689");
map.put("height", "145cm");
map.put("weight", "78kg");
map.put("QQ", "6789875643");
map.put("手机号", "15678964578");
map.put("微信", "ASD23478965");
map.put("name", "即可不要");
//修改元素
map.put("weight", "100kg");
// 1根据可以获取value值
String value =map.get("name");
System.out.println(value);
// 2获取map表中所有的key,set keySet()
Set set =map.keySet();
// 3打印map表中有key
/*
for (String key : set) {
System.out.println(map);
System.out.println(key+":"+map.get(key));
}
*/
// 4获取map表中第一种
System.out.println("=================================================");
Collection Values =map.values();
for (String v : Values) {
System.out.println(v);
}
}
}
package Map;
import java.util.*;
public class HashMapDemo3 {
public static void main(String[] args) {
HashMap map =new HashMap();
map.put("name", "机熊");
map.put("sex", "nan");
map.put("id", "2345689");
map.put("height", "145");
map.put("age", "1003");
/**
* 方式一
*/
Set set =map.keySet();
//打印map表中有key
for (String key : set) {
System.out.println(map);
System.out.println(key+":"+map.get(key));
}
}
}
//遍历方式二
/**
* 1:将map表中的数据放到一个集合当中
* Set > entrySet:获取所有集合键值对对象集合
*/
//}
//Set> enterySet = map.entrySet();
/*
for(Map.Entry en:entrySet) {
System.out.println(en);
System.out.println(en.getKey());
System.out.println(en.getValue());
}
}
package Map;
import java.util.*;
public class HashMapDemo4 {
private static final String HashMap = null;
public static void main(String[] args) {
HashMap hmap =new HashMap();
hmap.put("name", "机熊");
hmap.put("sex", "nan");
hmap.put("id", "2345689");
hmap.put("height", "145");
hmap.put("age", "1003");
//第一种方法keyset
for(String key:hmap.keySet()) {
System.out.println(key+"-----"+hmap.get(key));
}
System.out.println("=====================================");
//第二种方法
for(Map.Entry entry:hmap.entrySet()) {
System.out.println(entry);
}
System.out.println("========/*/**/");
for(String key :hmap.keySet()) {
System.out.println("key===="+key);
}
System.out.println("///");
for(String value :hmap.values()) {
System.out.println("value===="+value);
}
System.out.println("333333333333333");
//keyset
Iterator iterator=hmap.keySet().iterator();
while(iterator.hasNext()) {
String key=iterator.next();
System.out.println(key+" : "+hmap.get(key));
}
//entryset
Iterator> iterator1=hmap.entrySet().iterator();
while(iterator.hasNext()) {
Map.Entryentry= iterator1.next();
System.out.println(entry.getKey());
}
}
}
第二部分Redis缓存技术 概念
redis技术是一门数据库。
redis缓存技术是非关系型数据库,属于NoSQL
not only SQL:不仅仅是sql
redis技术是C语言
redis技术运行在cpu内存中
cpu---缓存------硬盘
MySQL数据库属于关系型数据库 (sun公司收购了)(小型公司)
Server SQL(微软)(中小型公司,收费)
Oracle(Oracle)(大型公司,收费)(java,mysql)
kotiln
DB2(IBM)
关系型数据库:实体与实体之间存在某种关系
一对一:班级表,班主任表
一对多:学生表,班级表
多对多:学生表,课程表-------结果表: 成绩表
用户表 商品表 订单表
张三同学的jsp课程考试分数为59
为什么要使用redis缓存?
因为在企业中用户访问数据库的人数是相当庞大的,
在大量用户同时访问数据库的时候,会加大服务器的开销
影响软件的反应速度,使用redis技术,可以加快查询数据的速度,减少流量,减少性能的开销
怎么用redis技术? 一般在springboot
winsows平台,linux平台
redis技术常用的数据类型:
1.String
2.hash
3.list
4.set
5.sortedset
String类型:
添加数据的指令:set 名称 值
查询数据的指令:get 名称
删除数据的指令:del 名称...当关闭redis服务器时,redis数据库中的数据将会被清空
当给redis数据库中添加的数据的名称与已存在的数据的名称一致时,
会将后面添加的数据替换旧数据
hash类型:
添加数据的指令:hset 名称 子名称 值
查询数据的指令:hget 名称 子名称
查询所有数据的指令:hgetall 名称
删除数据的指令:hdel 名称 子名称...
list类型: 可以添加重复的数据
添加数据的指令:
1.从左边添加数据:lpush 名称 值...
2.从右边添加数据:rpush 名称 值...
查询数据的指令:lrange 名称 开始的下标 结束的下标(-1表示到最后一个元素结束)
删除数据的指令:
1.从左边删除数据,并把删除的数据查询出来:lpop 名称
2.从右边删除数据,并把删除的数据查询出来:rpop 名称
set类型:不允许添加重复的数据
添加数据的指令:sadd 名称 值...
查询所有数据的指令:smembers 名称
删除数据的指令:srem 名称 值...
sortedset类型:不允许添加重复的数据,而且添加的数据需要进行排序
添加数据的指令:zadd 名称 分数 值...
查询所有数据的指令:zrange 名称 开始的下标 结束的下标 [withscores]表示查询数据的时候将数据对应的分数也查询出来
删除数据的指令:zrem 名称 值...
通用命令:
keys 名称或者*:查询redis数据库中是否存在哪些数据类型的名称type 名称:查询当前存储的数据是属于哪一种数据类型
del 名称:删除任何一种数据类型的所有数据
String 类型
127.0.0.1:6379> setage 20
(error) ERR unknown command 'setage'
127.0.0.1:6379> set age 20
OK
127.0.0.1:6379> get age
"20"
127.0.0.1:6379>
Redis的数据类型(五种)《增删改查>>>>>>>>>>>>>>>>>>>>命令行操作
1 Redis的数据类型一:
127.0.0.1:6379> set age 23
OK
127.0.0.1:6379> get age
"23"
=============增加数据类型指令=============================
127.0.0.1:6379> set name zgangsan
OK
----------------获取数据类型--------------------------------
127.0.0.1:6379> get name
"zgangsan"
127.0.0.1:6379>
==============删除数据指令:del 名称......=============================
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> get name
(nil)
当关闭redis服务器时,redis数据库中的数据清空。
当redis增加数据的名称与存在的数据名称一致是,会将后面增加的数据修改前面的数据。
127.0.0.1:6379> set name lisi
OK
127.0.0.1:6379> set name wangwu
OK
127.0.0.1:6379> get name
"wangwu"
------------------练习题---------库一-------------------------127.0.0.1:6379-----------------------------------------
127.0.0.1:6379> set bookname wodeshijie
OK
127.0.0.1:6379> get bookname
"wodeshijie"
127.0.0.1:6379> set booknum 45
OK
127.0.0.1:6379> get booknum
"45"
127.0.0.1:6379> getbook prick
(error) ERR unknown command 'getbook'
127.0.0.1:6379> set bookprick 34$
OK
127.0.0.1:6379> get bookprick
"34$"
127.0.0.1:6379> set bbookautor wangxuaiok
OK
127.0.0.1:6379> get bbookautor
"wangxuaiok"
127.0.0.1:6379> del bookname
(integer) 1
127.0.0.1:6379> set booknum 123
OK
127.0.0.1:6379> get booknum
"123"
127.0.0.1:6379>
------------------------------
2 Redis的数据类型一:
Hash-----------hash设置值------------
127.0.0.1:6379> hset student name wangxiaoer
(integer) 1
127.0.0.1:6379> hset student age 34
(integer) 1
127.0.0.1:6379> hset student sex nana
(integer) 1
127.0.0.1:6379> hset student like wangzhe
(integer) 1
127.0.0.1:6379> hset student phone 1234567
(integer) 1
127.0.0.1:6379> hset student address chian
(integer) 1
-----------------------------hash查询名称---------------------------------
(integer) 1
127.0.0.1:6379> hget studnet name
(nil)
127.0.0.1:6379> hget student name
--------------hash------获得所有数据--------------------------------------------------------
127.0.0.1:6379> hgetall student
1) "name"
2) "wangxiaoer"
3) "age"
4) "34"
5) "sex"
6) "nana"
7) "like"
8) "wangzhe"
9) "phone"
10) "1234567"
11) "address"
12) "chian"
---------------------hash数据的删除------------------------hdel---------------------------------------------------------
127.0.0.1:6379> hsel student sex age
(error) ERR unknown command 'hsel'
-------------------hdel student 名称
127.0.0.1:6379> hdel student sex age
(integer) 2
127.0.0.1:6379> hgetall student
1) "name"
2) "wangxiaoer"
3) "like"
4) "wangzhe"
5) "phone"
6) "1234567"
7) "address"
8) "chian"
----------------------------------------------------------------------------------------------------------------------
2 Redis的数据类型三:
list的集合
-------------------------------list增加数据类型------------------从left or right------------
127.0.0.1:6379> lpush mylist 123 abc xiaoming huji
(integer) 4
127.0.0.1:6379> rpush mylist A V D G H J T
(integer) 11
--------------lrange mylist 0 -1------------------------list查询数据------------- -1是最后一个in the end----------------
127.0.0.1:6379> lrange mylist 0 -1
1) "huji"
2) "xiaoming"
3) "abc"
4) "123"
5) "A"
6) "V"
7) "D"
8) "G"
9) "H"
10) "J"
11) "T"
127.0.0.1:6379> lpush mylist A B C D E F RT TY
(integer) 19
127.0.0.1:6379> lrange mylist 0 -1
1) "TY"
2) "RT"
3) "F"
4) "E"
5) "D"
6) "C"
7) "B"
8) "A"
9) "huji"
10) "xiaoming"
11) "abc"
12) "123"
--------------------------------------数据可以重复
13) "A"
14) "V"
15) "D"
16) "G"
17) "H"
18) "J"
19) "T"
---------------------------------删除的指令----------lpop-----or-------- rpop -------------
127.0.0.1:6379> lpop mylist
"TY"
127.0.0.1:6379> lop mylist
(error) ERR unknown command 'lop'
127.0.0.1:6379> lop mylist
(error) ERR unknown command 'lop'
127.0.0.1:6379> lpop mylist
"RT"
127.0.0.1:6379> rpop mylist
"T"
127.0.0.1:6379> rpor mylist
(error) ERR unknown command 'rpor'
127.0.0.1:6379> rpop mylist
"J"
127.0.0.1:6379> lrange mylist 0 -1
1) "F"
2) "E"
3) "D"
4) "C"
5) "B"
6) "A"
7) "huji"
8) "xiaoming"
9) "abc"
10) "123"
11) "A"
12) "V"
13) "D"
14) "G"
15) "H"
总结:
String set get del
Hash hset hget hdel hgetall student
List lpush mylist Rpush mylist lrange mylist 0 -1
Set sadd semembers
4 Redis的数据类型四:
Set集合(数据不能重复)
---------Set-------------增加数据的内容-----------sadd myset-------
127.0.0.1:6379> sadd myset 1 2 3 4 5 6 7
(integer) 7
127.0.0.1:6379> sadd 1 2 4
(integer) 2
127.0.0.1:6379> sadd myset 1 3 4 7
(integer) 0
-------------Set---------查询数据的指令-----------smembers myset-------------
127.0.0.1:6379> smembers myset
127.0.0.1:6379> srem myset2
(error) ERR wrong number of arguments for 'srem' command
127.0.0.1:6379> srem myser 2 3
(integer) 0
---------------Set-----------删除数据指令--------------------------------
127.0.0.1:6379> srem myset 2 3 4
(integer) 3
127.0.0.1:6379> smbembers
(error) ERR unknown command 'smbembers'
127.0.0.1:6379> smbembers myset
(error) ERR unknown command 'smbembers'
127.0.0.1:6379> smembers myset
1) "1"
2) "5"
3) "6"
4) "7"
5 Redis的数据类型五:
-----------Sortedset-------增加数据指令----zadd 78 lisi 56 kl 90 hu-- zadd 名称 分数---------
127.0.0.1:6379> zadd mysoet 10 liwu 34 ou 67 ji 34 hj 98
(error) ERR syntax error
127.0.0.1:6379> zadd 78 lisi 56 kl 90 hu
(error) ERR syntax error
127.0.0.1:6379> zadd mysort 20 list 30 wanwu
(integer) 2
-------------Sortedset--------查询-----------------------------
127.0.0.1:6379> zrange mysort 0 -1
1) "list"
2) "wanwu"
--------Sortedset--------查询数据将分数查询出来----------------
127.0.0.1:6379> zrange mysort 0 -1 withscores
1) "list"
2) "20"
3) "wanwu"
4) "30"
-----------------Sortedset------删除数据内容--------------------------------------------------------
127.0.0.1:6379> zrem mysort wanwu
(integer) 1
127.0.0.1:6379> zrange mysort 0 -1 withscores
1) "list"
2) "20"
数据通用的命令符.
通用命令符一查询所有数据.
通用命令符二查询数据的类型
通用命令符三删除数据
------通用命令符一---------查询所有数据-----------------
127.0.0.1:6379> keys *
1) "bookprick"
2) "name"
3) "student"
4) "sex"
5) "mysort"
6) "mylist"
7) "myset"
8) "booknum"
9) "1"
10) "bbookautor"
127.0.0.1:6379> keys student
1) "student"
--------------------通用命令符二----------------------------查询数据的类型-----------------------------------------------------------------
127.0.0.1:6379> type name
string
127.0.0.1:6379> type sex
string
127.0.0.1:6379> type syudent
none
127.0.0.1:6379> type student
hash
127.0.0.1:6379> type mysort
zset
------------------通用命令符三-----------------删除数据---------------------------------------------------------------------------------------------
127.0.0.1:6379> del student
(integer) 1
127.0.0.1:6379> hgetall student
(empty list or set)
hash类型:
添加数据的指令:hset 名称 子名称 值
查询数据的指令:hget 名称 子名称
查询所有数据的指令:hgetall 名称
删除数据的指令:hdel 名称 子名称...
list类型: 可以添加重复的数据
添加数据的指令:
1.从左边添加数据:lpush 名称 值...
2.从右边添加数据:rpush 名称 值...
查询数据的指令:lrange 名称 开始的下标 结束的下标(-1表示到最后一个元素结束)
删除数据的指令:
1.从左边删除数据,并把删除的数据查询出来:lpop 名称
2.从右边删除数据,并把删除的数据查询出来:rpop 名称
set类型:不允许添加重复的数据
添加数据的指令:sadd 名称 值...
查询所有数据的指令:smembers 名称
删除数据的指令:srem 名称 值...
sortedset类型:不允许添加重复的数据,而且添加的数据需要进行排序
添加数据的指令:zadd 名称 分数 值...
查询所有数据的指令:zrange 名称 开始的下标 结束的下标 [withscores]表示查询数据的时候将数据对应的分数也查询出来
删除数据的指令:zrem 名称 值...
通用命令:
keys 名称或者*:查询redis数据库中是否存在哪些数据类型的名称type 名称:查询当前存储的数据是属于哪一种数据类型
del 名称:删除任何一种数据类型的所有数据