初学Redis,redis配置、终端操作、界面操作、java连接redis。

网友投稿 886 2022-05-25

1、Redis介绍

1.1、什么是NoSql

为了解决高并发、高可用、高可扩展。大数据存储等一些列问

提的产生的数据库结局方案。

NoSql,叫做非关系型数据库,他的全名Not only sql。它不能

替代关系型数据库,只能作为关系型数据库的一个良好补充。

1.2 什么是redis

redis是使用c语言开发的一个高性能键值数据库。redis可以

通过一些键值类型来存储数据。

String字符串类型

map散列类型

list列表类型

set集合类型

sortedset 有序集合类型

1.3 redis启动

三个文件:

将前两个解压到D盘redis目录下

通过在终端cd /d  路径 找到redis解压目录

在解压目录当中执行  redis-server.exe redis.conf

redis默认自带16个子库,默认使用db0

切换子库命令:select index

1.4链接redis

1、通过终端在redis路径下执行redis-cli.exe连接到redis(如上图)

2、通过图形界面连接到redis

安装上面的第三个文件

3、jedis客户端

支持java语言连接(后面写)

1.5 redis的使用

终端命令:

赋值:

set  key  value

取值:

get  key

取值并赋值

getset key value

设置/获取多个键值

mset key value key value key value...

mget key key key key ...

删除

del key

数值的增减

递增数字:当存储的字符串是整数时,redis提供了一个实用的命令

incr,其作用是让当前键值递增,并返回递增后的值。

incr key

增加指定的整数

incrby key increment

递减数值

decr num

递减指定整数:

decrby num decrement

2、其他命令

1、向尾部追加值

append的作用是向键值的末尾追加value.如果键不存在则将

该键的值设置为value.

append str1 "world!"

2、获取字符串长度

strlen命令返回值得长度,如果键不存在则返回0

strlen key

3、自增主键

商品编号、订单采用string的递增数字特性生成

定义商品编号key: items:id

incr items:id

4、赋值hset命令,不区分插入和更新操作,当执行插入操作时,

hset命令返回1,当执行更新操作时返回0

一次只能设置一个字段

hset key filed value

一次可以设置多个字段值

hmset key1 filed1 value1  filed2 vlaue2 ...

hmset user age 20 username lisi

当字段不存在时赋值,类似hset,区别在于如果字段存在,该命令

不执行任何操作

hsetnx key file value

hsetnx user age 30

如果user中没有age字段则设置为30,否则不执行任何操作

hsetnx user salary 20000

5、取值

一次只能获取一个字段值

hget key filed

一次获取多个字段值

hmget key filed1 filed2...

一次获取所有字段

hgetall key

6、删除字段

可以删除一个或多个字段,返回值是被删除的字段个数

hdel key filed...

7、增加数字

hincrby key filed increment

8、判断字段是否存在

hexists key filed

返回1说明该字段存在,0说明该字段不存在

9、只获取字段名或字段值

hkeys key  :查看key对象当中的所有字段名

hvals key  :查看key对象当中的所有字段值

10、获取字段数量

hlen key :查看key对象当中的属性数量

应用:

1、存储商品信息

商品字段:商品id、商品名称、商品描述、商品库存、商品评价

hmset items:1001 id 3 name apple price 999.99

获取商品信息

hget items:1001 id 查询该条商品的指定列

hgetall items:1001 查询该条商品的所有信息

List:

ArrayList和linkedList的区别

ArrayList是使用数组存储数据,特点:查询快、增删慢

LinkedList是使用双向链表存储数据,特点:增删快,查询慢

但是查询链表两端数据比较快

redis的list是采用链表来存储的,所以对于redis的list数据

类型的操作,是操作List的两端数据来操作的

1、向列表两端增加元素

向列表左边增加元素

lpush key value ...

向列表右侧增加元素

rpush key value ...

2、 查看列表

lrange命令是列表类型最常用的命令之一,获取列表中某一片段,返回     start、stop之间的所有元素(包含两端元素),索引从0开始,索引可以    是负数,如:'-1'代表最后边的一个元素

lrange key start stop

3、从列表两端弹出元素

LPOP命令从列表左边弹出一个元素,会分两步完成

第一步:是将列表左边的元素从列表中删除

第二步是返回被移除的元素值

LPOP key

RPOP key

4、获取列表中的元素个数

llen key

5、删除列表中指定的值

LREM 命令会删除列表中前count个值为value的元素,返回实际删除

元素个数。根据count值得不同,该命令执行方式会有所不同

当count>0时,lrem 会从列表左侧开始删除

当count<0时,lrem 会从列表后边开始删除

当count=0时,lrem 删除所有值为value元素

lrem key count value

初学Redis,redis配置、终端操作、界面操作、java连接redis。

6、获取/设置指定索引的元素值

LINDEX key index

设置指定索引的元素值

lset list:1 1 5

命令请自行测试,贴出我测试的:

D:\redis>redis-cli.exe

127.0.0.1:6379> SELECT 7

OK

127.0.0.1:6379[7]> set str 123

OK

127.0.0.1:6379[7]> get str

"123"

127.0.0.1:6379[7]> getset str2 12345

(nil)

127.0.0.1:6379[7]> get str2

"12345"

127.0.0.1:6379[7]> mset str3 fuzui str3 wwze

OK

127.0.0.1:6379[7]> mget str3 str3

1) "wwze"

2) "wwze"

127.0.0.1:6379[7]> del str3

(integer) 1

127.0.0.1:6379[7]> del str

(integer) 1

127.0.0.1:6379[7]> incr num

(integer) 1

127.0.0.1:6379[7]> incr num

(integer) 2

127.0.0.1:6379[7]> incrby num 3

(integer) 5

127.0.0.1:6379[7]> incr num

(integer) 6

127.0.0.1:6379[7]> incrby num 3

(integer) 9

127.0.0.1:6379[7]> decr num

(integer) 8

127.0.0.1:6379[7]> decrby num 4

(integer) 4

127.0.0.1:6379[7]> append str2 world

(integer) 10

127.0.0.1:6379[7]> get str2

"12345world"

127.0.0.1:6379[7]> strlen str2

(integer) 10

127.0.0.1:6379[7]> strlen dd

(integer) 0

127.0.0.1:6379[7]> append str1 hello

(integer) 5

127.0.0.1:6379[7]> get str1

"hello"

127.0.0.1:6379[7]> incr items:id

(integer) 1

127.0.0.1:6379[7]> incr items:id

(integer) 2

127.0.0.1:6379[7]> incr items:id

(integer) 3

127.0.0.1:6379[7]> hset user username wangze

(integer) 1

127.0.0.1:6379[7]> hmset manager name fuzui sex female

OK

127.0.0.1:6379[7]> hsetnx user username fuzui

(integer) 0

127.0.0.1:6379[7]> hsetnx user age 22

(integer) 1

127.0.0.1:6379[7]> hget user username

"wangze"

127.0.0.1:6379[7]> hget user age

"22"

127.0.0.1:6379[7]> hmget user username age

1) "wangze"

2) "22"

127.0.0.1:6379[7]> hgetall user

1) "username"

2) "wangze"

3) "age"

4) "22"

127.0.0.1:6379[7]> hdel user age

(integer) 1

127.0.0.1:6379[7]> hgetall user

1) "username"

2) "wangze"

127.0.0.1:6379[7]> hset user age 22

(integer) 1

127.0.0.1:6379[7]> hgetall user

1) "username"

2) "wangze"

3) "age"

4) "22"

127.0.0.1:6379[7]> hset user salary 18000

(integer) 1

127.0.0.1:6379[7]> hgetall user

1) "username"

2) "wangze"

3) "age"

4) "22"

5) "salary"

6) "18000"

127.0.0.1:6379[7]> hincrby user age 2

(integer) 24

127.0.0.1:6379[7]> hincrby user username 2

(error) ERR hash value is not an integer

127.0.0.1:6379[7]> hexists user age

(integer) 1

127.0.0.1:6379[7]> hexists user class

(integer) 0

127.0.0.1:6379[7]> hkeys user

1) "username"

2) "age"

3) "salary"

127.0.0.1:6379[7]> hvals user

1) "wangze"

2) "24"

3) "18000"

127.0.0.1:6379[7]> hlen user

(integer) 3

127.0.0.1:6379[7]> hmset items:1001 id 3 name a[[;e price 1399

OK

127.0.0.1:6379[7]> hget items:1001 id

"3"

127.0.0.1:6379[7]> hgetall items:1001

1) "id"

2) "3"

3) "name"

4) "a[[;e"

5) "price"

6) "1399"

127.0.0.1:6379[7]> hmset items:1001 name apple

OK

127.0.0.1:6379[7]> hgetall items:1001

1) "id"

2) "3"

3) "name"

4) "apple"

5) "price"

6) "1399"

127.0.0.1:6379[7]> lpush list:1 1 2 3 4 5

(integer) 5

127.0.0.1:6379[7]> rpush list:1 a b c d e

(integer) 10

127.0.0.1:6379[7]> lrange list:1 0 7

1) "5"

2) "4"

3) "3"

4) "2"

5) "1"

6) "a"

7) "b"

8) "c"

127.0.0.1:6379[7]> lrange list:1 0 -2

1) "5"

2) "4"

3) "3"

4) "2"

5) "1"

6) "a"

7) "b"

8) "c"

9) "d"

127.0.0.1:6379[7]> lpop list:1 0 1

(error) ERR wrong number of arguments for 'lpop' command

127.0.0.1:6379[7]> lpop list:1

"5"

127.0.0.1:6379[7]> lpop list:1

"4"

127.0.0.1:6379[7]> rpop ;list:1

(nil)

127.0.0.1:6379[7]> lrange list:1 0 -1

1) "3"

2) "2"

3) "1"

4) "a"

5) "b"

6) "c"

7) "d"

8) "e"

127.0.0.1:6379[7]> rpop list:1

"e"

127.0.0.1:6379[7]> llen list:1

(integer) 7

127.0.0.1:6379[7]> lrem list:1 2 2

(integer) 1

127.0.0.1:6379[7]> lrangger list:1 0 -1

(error) ERR unknown command 'lrangger'

127.0.0.1:6379[7]> lrange list:1 0 -1

1) "3"

2) "1"

3) "a"

4) "b"

5) "c"

6) "d"

127.0.0.1:6379[7]> lindex list:1 3

"b"

127.0.0.1:6379[7]> lset list:1 4 w

OK

127.0.0.1:6379[7]> lrange list:1 0 -1

1) "3"

2) "1"

3) "a"

4) "b"

5) "w"

6) "d"

127.0.0.1:6379[7]>

[点击并拖拽以移动]

这只是一小部分命令~

使用java连接redis:

1.eclipse创建一个java project

2.导包

3. 创建test类

import org.junit.Test;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

public class JedisTest {

@Test

public void jedisClient() {

//使用该对象连接到redis

Jedis jedis = new Jedis("localhost",6379);

//在redis当中存值

jedis.set("s2", "789456");

//通过redis取值

String result = jedis.get("s2");

System.out.println(result);

//关闭redis连接对象

jedis.close();

}

@Test

public void getValues() {

//使用该对象连接到redis

Jedis jedis = new Jedis("localhost",6379);

//在redis当中存值

jedis.set("s2", "789456");

//通过redis取值

String result = jedis.get("s2");

System.out.println(result);

//关闭redis连接对象

jedis.close();

}

@Test

//使用jedis连接池连接redis服务器

public void jedisPool() {

JedisPool pool = new JedisPool("localhost",6379);

//通过连接池获取jedis

Jedis jedis = pool.getResource();

String result = jedis.get("s2");

System.out.println(result);

//关闭jedis客户端

jedis.close();

}

}

4.测试

5.使用spring+redis

(1)导入spring相关包

(2)配置spring配置文件applicationContext.xml

(3)写入一个方法

@Test

public void springJedisPool() {

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

JedisPool pool = (JedisPool)ac.getBean("jedisPool");

Jedis jedis = null;

try {

jedis = pool.getResource();

jedis.set("name", "fuzui");

String name = jedis.get("name");

System.out.println(name);

}catch(Exception e) {

e.printStackTrace();

}finally {

if(jedis != null) {

jedis.close();

}

}

}

(4)测试

解释都在代码注释当中了~

学习redis的第一天.

redis下载:

csdn下载:1积分下载redis

百度网盘免费下载:redis工具

提取码:za75

java连接redis需要的包:

csdn下载:1积分下载jedis

百度网盘免费下载:jedis包

提取码:47ro

spring完整5.0.7包:

csdn下载:1积分下载spring包

百度网盘免费下载:spring包

提取码:2wtu

有问题或bug可以留言,一天内回复~

Java Redis

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:远程办公软件华为云WeLink视频会议指南(中篇:会议投屏、翻译)
下一篇:【福利】华为云 云速企业邮箱 特惠促销 无限容量 2GB超大附件
相关文章