搜索框架搭建3: redis安装及使用 命令行/python/java数据读写

搜索框架搭建1:elasticsearch安装和可视化工具kibana、分词插件jieba安装 https://blog.csdn.net/tingkr/article/details/84029738
搜索框架搭建2: tomcat安装及使用 https://blog.csdn.net/tingkr/article/details/84560539

在搜索框架中,需要数据库服务器存储数据和响应数据请求,redis由于其开源,被广泛用作数据库服务。redis是基于key-value形式的数据库,有几个突出的优点:(1) 支持数据的持久化,可以将内存中的数据保存在磁盘中;(2) 支持多种类型结构的value的存储,如string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型);(3) 支持数据备份。

1 redis安装

下载地址:https://redis.io/download

安装环境:linux

从官网下载最新稳定版本后,解压到不需要sudo权限操作的某个路径下。若解压路径需要sudo权限操作,将在后续通过python或者java对redis进行数据读写增删等操作时,带来很多因为sudo权限的问题。

解压后进入redis路径,执行make进行编译

cd /home/appuser/tools/redis #/home/appuser/tools/redis为redis的解压目录
make

编译完成后,将产生对应的src、conf等文件夹。编译成功后,进入src文件夹,执行make install进行redis安装。

为了其它机器可以连上redis所在服务器并进行数据读写,需修改redis目录下的配置文件redis.conf
bind 127.0.0.1注释
protected-mode yes改成protected-mode no
配置文件中各项参数具体含义,请参见http://www.runoob.com/redis/redis-conf.html

1.1 启动redis

启动redis需启动src目录下的redis-server,为了使配置文件redis.conf生效,在启动redis-sever时需加载redis.conf

./src/redis-server redis.conf

启动成功后会出现如下提示
redis启动后界面显示

2 redis数据读写操作

redis读写数据非常方便,可通过命令行进行操作,也可通过Python或java进行数据读取。不管通过哪种方式读写数据,首先要启动redis,否则将无法连接到redis从而无法进行数据读写操作。

redis是基于key-value的数据存储形式,value支持多种数据类型,string、list、set、zset和hash,不同类型的读写语句稍有差别。

对key的操作

查找key是否存在,方法为exists,参数为key。
删除key,方法均del,参数为key。

对value进行操作

string类型,写数据的方法为set,参数包括key和value两个,读数据的方法为get,参数为key。
list类型,一个list最多可以包含 2 32 − 1 {2^{32} - 1} 2321 个元素。list有两个方向,左和右,写数据时,即可从左边往list里写,也可从右边往list里写,删除数据同理,均可从左右删除。
从左往list里写数据的方法为lpush, 参数包括key和当前要写入的值v1,从右往list里写数据的方法为rpush,参数同lpush。
从左删除list里list头数据的方法为lpop,参数为key,从右删除list里list尾数据的方法为rpop,参数为key。
读数据的方法为lrange,参数有三个,key, 起始位置和结束位置。

2.1 命令行读写数据

命令行读写数据,首先执行redis-cli启动redis客户端,启动后界面如下。
命令行启动redis客户端

命令行操作对大小写不敏感。

方法和参数之间用空格隔开,参数和参数之间用空格隔开。

查找key是否存在

exists test #以key为test为例

若key值存在,返回值为1;不存在,返回值为0.

批量查找key
通过通配符查找

keys 'test*' #查找以test开头的所有key

删除key

del test #以key为test为例

若key值存在,删除成功,返回值为1;key值不存在,返回值为0.

批量删除key
批量删除key一般通过对key值用通配符进行查找,再借助linux的管道进行删除,这个操作不需要启动客户端

redis-cli keys "test*"|xargs redis-cli del

value类型为string

set test 1 #写入key为test, value为值为1的数据,写入成功返回OK
get test   #读取key为test的数据,若test的值存在,则返回对应的value,若不存在,返回nil,即null。

value类型为list

lpush test 1 #从左往test里写入1,写入成功返回写入的值1
rpush test 1 #从右往test里写入1,写入成功返回写入的值1
lppo test    #从左删除test里list头数据,删除成功返回删除的值
rpop test    #从右删除test里list尾数据,删除成功返回删除的值
lrange test 0 -1    #读取key为test里list从第一个到最后一个的值,0表示第一个,-1表示最后一个,返回list值

2.2 python读写数据

python对redis里的数据进行操作,首先需要安装redis对应的包redis。在代码中需import redis并进行连接操作。

import redis

# 连接到ip地址为10.99.266.122这台机器上的redis服务,端口号需要和reids配置文件redis.conf里的端口号保持一致,默认端口为6379
rs = redis.Redis(host = '10.99.266.122', port = 6379)

# 查询key
rs.keys('test*')  #查找以test开头的所有key

# 删除key
rs.delete('test') #删除key为test的数据

# value为string数据写、删、查询
rs.set(key, v) #向redis里写入
rs.get(key)    #读取redis里key值对应的value

# value为list数据写、删、查询
rs.lpush(key, v) #从左往key对应的list里写入v
rs.rpush(key, v) #从右往key对应的list里写入v
rs.lpop(key)     #从左从key对应的list里删除v
rs.rpop(key)     #从右从key对应的list里删除v
rs.lrange(key, 0, -1) #读取key对应的list所有元素, 第二和第三个参数表示起始位置和结束位置

2.3 java读写数据

java对redis里的数据进行操作,首先需要下载redis对应的包,放入项目中的lib目录,楼主下载的版本为jedis-3.0.0-m1.jar。在代码中需import redis.clients.jedis.Jedis并进行连接操作。数据读写操作类似python

import redis.clients.jedis.Jedis;

// 连接到ip地址为10.99.266.122这台机器上的redis服务,端口号需要和reids配置文件redis.conf里的端口号保持一致,默认端口为6379
Jedis rs = new Jedis("10.99.266.122", 6379)

// value为string数据写、删、查询
rs.set(key, v)       //向redis里写入
res = rs.get(key)    //读取redis里key值对应的value

// value为list数据写、删、查询
rs.lpush(key, v) //从左往key对应的list里写入v
rs.rpush(key, v) //从右往key对应的list里写入v
rs.lpop(key)     //从左从key对应的list里删除v
rs.rpop(key)     //从右从key对应的list里删除v
rs.lrange(key, 0, -1) //读取key对应的list所有元素, 第二和第三个参数表示起始位置和结束位置
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值