Redis学习一
一、Redis数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
1,字符串类型
2.哈希类型
3.列表类型
4.集合类型(string,添加第二次zha会被忽略)
5.有序集合类型(string,根据字母排序)
二、Redis命令
1.启动redis:
2. DUMP 命令用于序列化给定 key ,并返回被序列化的值。
3.修改key名:
3.1Rename 命令用于修改 key 的名称 。
(EXISTS 命令用于检查给定 key 是否存在)
1)key 存在且 newkey 不存在;
2)当 key 不存在时,返回错误;
3)newkey 已存在时, RENAME 会覆盖旧 newkey(值为前一个oldkey的值)。
3.2 Renamenx 命令用于在新的 key 不存在时修改 key 的名称 。
1)newkey 不存在,改名成功;
2)newkey存在时,失败。
4.增、删、查:
4.设计时间:
4.1 Expire 命令用于设置 key 的过期时间,key 过期后将不再可用。单位以秒计。
4.2 Expireat 命令用于以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。key 过期后将不再可用。
4.3 PEXPIRE 命令和 EXPIRE 命令的作用类似,但是它以毫秒为单位设置 key 的生存时间,而不像 EXPIRE 命令那样,以秒为单位
PEXPIREAT 命令用于设置 key 的过期时间,以毫秒计。key 过期后将不再可用。
1) PTTL key :以毫秒为单位返回 key 的剩余的过期时间。
2) TTL key:以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
4.4 PERSIST 命令用于移除给定 key 的过期时间,使得 key 永不过期。
5. Keys 命令用于查找所有符合给定模式 pattern 的 key 。
6. MOVE 命令用于将当前数据库的 key 移动到给定的数据库 db 当中。
1)key 存在于当前数据库,可移到另一数据库;
2)key 不存在于当前数据库,不能移到另一数据库;
3)当源数据库和目标数据库有相同的 key 时,不能移到另一数据库。
7. RANDOMKEY 命令从当前数据库中随机返回一个 key 。
1)mset: 设置多个 key;
2)key *:查看数据库内所有key;
3)flushdb:删除当前数据库所有 key。
三、JAVA使用redis
1.下好jar包,并导入:
地址是:https://mvnrepository.com/artifact/redis.clients/jedis
2.连接windows下的redis
import redis.clients.jedis.Jedis;
public class Xue {
public static void main(String[] args) {
// 连接本地的 Redis 服务
Jedis jedis = new Jedis("192.168.43.50");
// jedis.auth("no");
// jedis.select(1);
System.out.println("Connection to server sucessfully");
// 查看服务是否运行
System.out.println("Server is running: " + jedis.ping());
}
}
2.远程连接Ubuntu下的redis:
1)报错修改:
2)需要以下命令启动,注意文件位置,不然不能保存刚刚修改的:
3)连接成功:
import redis.clients.jedis.Jedis;
public class Xue {
public static void main(String[] args) {
// 连接本地的 Redis 服务
Jedis jedis = new Jedis("192.168.192.130");
jedis.auth("no");
// jedis.select(1);
System.out.println("Connection to server sucessfully");
// 查看服务是否运行
System.out.println("Server is running: " + jedis.ping());
}
}
注:redis.conf参数,黄色需要记住:
3.List(列表)
import java.util.List;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;
public class Xue1 {
public static void main(String[] args) {
// 连接本地的 Redis 服务
JedisShardInfo shardInfo = new JedisShardInfo("redis://192.168.192.130:6379");//这里是连接的本地地址和端口
shardInfo.setPassword("no");//这里是密码
Jedis jedis = new Jedis(shardInfo);
System.out.println("虚拟机 is running: " + jedis.ping());
// jedis.select(1);
jedis.lpush("site-list", "Runoob");
jedis.lpush("site-list", "Google");
jedis.lpush("site-list", "Taobao");
// 获取存储的数据并输出
List<String> list = jedis.lrange("site-list", 0 ,2);
for(int i=0; i<list.size(); i++) {
System.out.println("列表项为: "+list.get(i));
}
}
}