喵星之旅-狂奔的兔子-redis使用

一、命令行使用

redis大概有200多命令,这里只是入门级别,列举了一些非常常见的内容,如果这些会了就可以开启redis进一步学习了。

1、登录数据库

我们需要知道ip地址、端口号、密码(如果有)。

登录命令:

有密码:

1
redis-cli -h 127.0.0.1 -p 6379 -a "bunny"

无密码:

1
redis-cli -h 127.0.0.1 -p 6379

本机登录可以直接:

1
redis-cli

如果要正确显示中文,需要加上参数 –raw

2、字符串数据操作

存储,如果存在就更新

1
2
set name bunny
set age 11

批量存储

1
mset name kk password 123456

增加,不修改,如果key存在则失败。

1
setnx name kk

字符串内容后追加“2020”

1
APPEND name 2020

数字内容增加1

1
incr age

数字内容减少1

1
decr age

读取

1
2
keys *
get name

删除

1
del age

Alt text

3、列表数据操作-list

从左侧添加数据(可以多个,从前面的值开始添加,相当于多个命令)

1
lpush list tom

从左侧删除数据并返回该数据

1
lpop list

从右侧添加数据(可以多个)

1
rpush list jerry

从右侧删除数据并返回该数据

1
rpop list

根据索引修改值(0开始)

1
lset list 0 james

根据索引获取值(0开始)

1
lindex list 0

获取列表长度

1
llen list

显示范围值(闭区间)

1
lrange list 0 100

4、集合数据操作-set

向集合添加一个或多个成员

1
2
sadd myset 1 2
sadd myset tom

返回集合中的所有成员

1
smembers myset

移除并返回集合中的一个随机元素

1
spop myset

判断 member 元素是否是集合 key 的成员

1
sismember myset tom

5、对象存储-hash

student(id:1,no:bunny001,name:kitty,sex:男)

存储上面的对象:

1
2
hset student id 1
hmset student no bunny001 name kitty sex 男

获取内容:

1
2
3
hget student no //获取单一值
hmget student id sex //获取多个值
hgetall student //获取所有值,结果必然偶数行,key val交替。

显示所有的属性

1
hkeys student

显示所有的值

1
hvals student

删除属性

1
hdel student id

6、其他

删除数据

清空当前数据库

1
flusdb

清空所有数据库

1
flushall

获取数据类型

1
type age

设置过期时间

1
exprie name 1000

10秒过期,不存在值才能成功

1
set lock 1 ex 10 nx

二、jedis使用

svn://www.kittybunny.cn/kitty/2、code/redis 用户名密码: reader reader

1、添加2个jar

commons-pool2-2.4.2.jar
jedis-2.9.0.jar

2、测试连接

1
2
3
4
5
Jedis jedis = new Jedis("127.0.0.1", 16379);
// jedis.auth(""); //密码
jedis.set("kitty", "bunny");
System.out.println(jedis.get("kitty"));
jedis.close();

3、操作string

1
2
3
4
5
Jedis jedis = new Jedis("127.0.0.1", 16379);
// jedis.auth(""); //密码
jedis.set("string01", "mystring");
System.out.println(jedis.get("string01"));
jedis.close();

4、操作list

1
2
3
4
5
6
7
8
Jedis jedis = new Jedis("127.0.0.1", 16379);
// jedis.auth(""); //密码
jedis.lpush("javalist", "s1");
jedis.lpush("javalist", "s2", "s3");
System.out.println(jedis.lrange("javalist", 0, -1));
System.out.println(jedis.lpop("javalist"));
System.out.println(jedis.lrange("javalist", 0, -1));
jedis.close();

5、操作set

1
2
3
4
5
Jedis jedis = new Jedis("127.0.0.1", 16379);
// jedis.auth(""); //密码
jedis.sadd("javaset", "s1", "s2");
System.out.println(jedis.smembers("javaset"));
jedis.close();

6、操作hash

1
2
3
4
5
6
7
8
9
10
Jedis jedis = new Jedis("127.0.0.1", 16379);
// jedis.auth(""); //密码
jedis.hset("user", "id", "oo1");
HashMap<String, String> hash = new HashMap<>();
hash.put("name", "名字");
hash.put("password", "pwd");
hash.put("sex", "m");
jedis.hmset("user", hash);
System.out.println(jedis.hgetAll("user"));
jedis.close();

7、连接池操作

1
2
3
4
5
6
7
8
JedisPoolConfig pool = new JedisPoolConfig();
pool.setMaxTotal(5);//最大连接
pool.setMaxIdle(1);//最大空闲
JedisPool jp = new JedisPool(pool, "127.0.0.1", 16379);
Jedis jedis = jp.getResource();
// jedis.auth(""); //密码
System.out.println(jedis.ping());
jedis.close();

8、当作缓存使用

1
2
3
4
5
6
7
8
9
10
11
12
Jedis jedis = new Jedis("127.0.0.1", 16379);
// jedis.auth(""); //密码
String key = "sessionid";
if (jedis.exists(key)) {
System.out.println(jedis.get(key));
} else {
// 查询数据库,oracle或者mysql
String content = "数据库中内容";
jedis.set(key, content);
System.out.println("数据库中查询到:" + content);
}
jedis.close();
文章目录
  1. 一、命令行使用
    1. 1、登录数据库
      1. 登录命令:
    2. 2、字符串数据操作
    3. 3、列表数据操作-list
    4. 4、集合数据操作-set
    5. 5、对象存储-hash
    6. 6、其他
      1. 删除数据
      2. 获取数据类型
      3. 设置过期时间
      4. 10秒过期,不存在值才能成功
  2. 二、jedis使用
    1. 1、添加2个jar
    2. 2、测试连接
    3. 3、操作string
    4. 4、操作list
    5. 5、操作set
    6. 6、操作hash
    7. 7、连接池操作
    8. 8、当作缓存使用
|