redis使用基础篇

2023-10-30 17:52:58 浏览数 (1)

怎么提高系统数据读写速度?除了提升内存、磁盘的硬件性能,软件方面有没有什么能够协助提升数据读写性能的呢?还真有,就是redis这一款非关系型数据库软件,具有极高的读写性能,今天就来研究下一下。

redis是一款开源、使用c语言编写完成,基于内存可以持久化的高性能键值数据库。性能怎么个好法,读写速度分别为1100000、81000次每秒。数据类型也丰富,不止key-value,还有list、set、hash等数据结构,支持主从备份、支持将内存数据保存到磁盘。

再来说说redis作者Salvatore Sanfilippo,意大利人,有艺术家的气息,人家确实也去从事艺术去了,从2020年开始,它就停止了他的程序员职业生涯,加入了作家的行列,现在全职写小说。他的第一部科幻小说wohpe意大利语版本今年7月15面世,英文版还没出来得等到今年冬天出版,主要讲人工智能、人类与技术的相互作用,有点期待。

Salvatore Sanfilippo

作者为什么不从事程序员?在他博客上,他表明“现代编程正在变得复杂,无趣,充满了只需要粘合的层。它正在失去大部分的美丽。从这个意义上说,大多数编程不再是艺术,也不是高级工程(大多数在大公司和小公司编写的程序都是微不足道的:程序员只需要理解某些临时抽象,并编写一些逻辑和胶水代码)。只有极少数程序员面对编程的艺术面貌。只有极少数程序员在编程中面临高工程性。”读到这段话,自己确实有点同感,因为目前都是朝着编程拖拉拽搭积木的方向发展,人工智能的发展也会让很多人失去工作。

在使用前,基本的数据结构得明白,比如一下几种:

(1)string字符串

(2)hash散列

(3)list列表

(4)set集合

(5)sorted set 有序集合

软件地址redis.io

mac、windos平台的大家可以下载对应的包进入目录直接运行即可,也有相关的连接客户端大家可以用一下看看,这里着重介绍下linux环境下的安装。

(1)安装相关依赖

yum install -y gcc tcl

(2)上传redis源码包并解压

(3)进入目录编译,执行命令make、make install

(4)默认安装在/usr/local/bin目录,修改redis.conf文件,将bind修改为0.0.0.0这样就可以远程访问了,requirepass设置密码,其余的可以用默认配置

(5)启动 /usr/local/bin/redis-server /etc/redis.conf

(6)登录 redis-cli -h -p 6379

(7)验证心跳

(8)可以设置为systemd服务,即可开机自启

(1)string的常见命令:set添加键值对、get根据key获取value、mset批量添加键值对,mget根据多个key获取多个value、strlen获得value的长度,其余命令的就得自己研究了

(2)hash是一个键值对集合,对应的数据结构有两种,ziplist压缩列表和hashtable哈希表,常见命令:hset key field value添加修改hash类型的filed的值、hget key field获取hash类型key的field的值,hmget批量获取多个hash值、hgetall获取一个hash类型key中所有的field和value。

(3)list列表:lpush key element 在列表左侧插入一个或多个元素、lpop key溢出并返回列表左侧的第一个元素、rpush key elment 在列表右侧插入一个或多个元素,rpop key移除并返回列表右侧的第一个元素,llen <key> 获得列表长度。

(4)set集合:sadd key member 向集合添加一个或多个元素、srem key member移除set中的指定元素、smembers key 获取set中的所有元素

学会对应类型的增删改查,就基本能应付工作日常所需了。

(1)引入依赖,jedis是官方推荐的java连接开发工具,开发中要想使用好redis,必须对jedis熟悉。

代码语言:javascript复制
       <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>
(2)创建使用
Jedis jedis = new Jedis("localhost", 6379);  //指定Redis服务ip端口
jedis.auth("xxxx"); //如果Redis服务连接需要密码
jedis.set(“key”,”hello cillian”)
String value = jedis.get("key"); //访问Redis服务
System.out.println(key);
jedis.close(); //使用完关闭连接
(3)Jedis连接池
public class  Demo {
    private static JedisPool jedisPool = null;
    static {
        //配置连接池
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(8);
        jedisPoolConfig.setMaxIdle(8);
        jedisPoolConfig.setMinIdle(0);
        jedisPoolConfig.setMaxWaitMillis(200);
        //创建连接池对象
        jedisPool = new JedisPool(jedisPoolConfig,"127.0.0.1",6379,1000,"132537");
    }
    public static Jedis getJedis(){
       return jedisPool.getResource();
    }
}

到这里,对于redis的基础应该有一个大致了解,快去实践吧,祝学习顺利!

END

作者|希里安

0 人点赞