Redis快速入门

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。

01简介


这是redis中文官网的介绍


Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。

它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sortedsets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。Redis内置了复制(replication),LUA脚本(Luascripting),LRU驱动事件(LRUeviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(highavailability)。


02Java使用Redis



package com.redis; import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Set;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;import redis.clients.jedis.JedisShardInfo;import redis.clients.jedis.ShardedJedis;import redis.clients.jedis.ShardedJedisPool;import redis.clients.jedis.SortingParams; public class RedisClient {     private Jedis jedis;//非切片客户端连接    private JedisPool jedisPool;//非切片连接池    private ShardedJedis shardedJedis;//切片客户端连接    private ShardedJedisPool shardedJedisPool;//切片连接池        public RedisClient() {         initialPool();         initialShardedPool();         shardedJedis = shardedJedisPool.getResource();         jedis = jedisPool.getResource();     }     /**     * 初始化非切片池     */    private void initialPool() {         // 池基本配置         JedisPoolConfig config = new JedisPoolConfig();         config.setMaxActive(20);         config.setMaxIdle(5);         config.setMaxWait(1000l);         config.setTestOnBorrow(false);              jedisPool = new JedisPool(config,"127.0.0.1",6379);    }    /**      * 初始化切片池      */     private void initialShardedPool() {         // 池基本配置         JedisPoolConfig config = new JedisPoolConfig();         config.setMaxActive(20);         config.setMaxIdle(5);         config.setMaxWait(1000l);         config.setTestOnBorrow(false);         // slave链接         List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();         shards.add(new JedisShardInfo("127.0.0.1", 6379, "master"));         // 构造池         shardedJedisPool = new ShardedJedisPool(config, shards);     }      public void show() {             KeyOperate();         StringOperate();         ListOperate();         SetOperate();        SortedSetOperate();        HashOperate();         jedisPool.returnResource(jedis);        shardedJedisPool.returnResource(shardedJedis);    }       private void KeyOperate() {         //todo      }      private void StringOperate() {         //todo      }      private void ListOperate() {         //todo      }      private void SetOperate() {         //todo      }      private void SortedSetOperate() {         //todo      }      private void HashOperate() {         //todo      }}

1、String字符串

//设置 redis 字符串数据 jedis.set("runoobkey", "www.runoob.com"); String str = jedis.get("runoobkey");

2、List(列表)


//存储数据到列表中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));}

3、Keys 实例


// 获取数据并输出Set<String> keys = jedis.keys("*"); Iterator<String> it=keys.iterator() ;   while(it.hasNext()){       String key = it.next();       System.out.println(key);   }



03常用命令


1)连接操作命令

   quit:关闭连接(connection)

   auth:简单密码认证

   help cmd:查看cmd帮助,例如:help quit

   

   2)持久化

   save:将数据同步保存到磁盘

   bgsave:将数据异步保存到磁盘

   lastsave:返回上次成功将数据保存到磁盘的Unix时戳

   shundown:将数据同步保存到磁盘,然后关闭服务

   

   3)远程服务控制

   info:提供服务器的信息和统计

   monitor:实时转储收到的请求

   slaveof:改变复制策略设置

   config:在运行时配置Redis服务器

   

   4)对value操作的命令

   exists(key):确认一个key是否存在

   del(key):删除一个key

   type(key):返回值的类型

   keys(pattern):返回满足给定pattern的所有key

   randomkey:随机返回key空间的一个

   keyrename(oldname, newname):重命名key

   dbsize:返回当前数据库中key的数目

   expire:设定一个key的活动时间(s)

   ttl:获得一个key的活动时间

   select(index):按索引查询

   move(key, dbindex):移动当前数据库中的key到dbindex数据库

   flushdb:删除当前选择数据库中的所有key

   flushall:删除所有数据库中的所有key

   

   5)String

   set(key, value):给数据库中名称为key的string赋予值value

   get(key):返回数据库中名称为key的string的value

   getset(key, value):给名称为key的string赋予上一次的value

   mget(key1, key2,…, key N):返回库中多个string的value

   setnx(key, value):添加string,名称为key,值为value

   setex(key, time, value):向库中添加string,设定过期时间time

   mset(key N, value N):批量设置多个string的值

   msetnx(key N, value N):如果所有名称为key i的string都不存在

   incr(key):名称为key的string增1操作

   incrby(key, integer):名称为key的string增加integer

   decr(key):名称为key的string减1操作

   decrby(key, integer):名称为key的string减少integer

   append(key, value):名称为key的string的值附加value

   substr(key, start, end):返回名称为key的string的value的子串

   

   6)List

   rpush(key, value):在名称为key的list尾添加一个值为value的元素

   lpush(key, value):在名称为key的list头添加一个值为value的 元素

   llen(key):返回名称为key的list的长度

   lrange(key, start, end):返回名称为key的list中start至end之间的元素

   ltrim(key, start, end):截取名称为key的list

   lindex(key, index):返回名称为key的list中index位置的元素

   lset(key, index, value):给名称为key的list中index位置的元素赋值

   lrem(key, count, value):删除count个key的list中值为value的元素

   lpop(key):返回并删除名称为key的list中的首元素

   rpop(key):返回并删除名称为key的list中的尾元素

   blpop(key1, key2,… key N, timeout):lpop命令的block版本。

   brpop(key1, key2,… key N, timeout):rpop的block版本。

   rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部

   

   7)Set

   sadd(key, member):向名称为key的set中添加元素member

   srem(key, member) :删除名称为key的set中的元素member

   spop(key) :随机返回并删除名称为key的set中一个元素

   smove(srckey, dstkey, member) :移到集合元素

   scard(key) :返回名称为key的set的基数

   sismember(key, member) :member是否是名称为key的set的元素

   sinter(key1, key2,…key N) :求交集

   sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合

   sunion(key1, (keys)) :求并集

   sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合

   sdiff(key1, (keys)) :求差集

   sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合

   smembers(key) :返回名称为key的set的所有元素

   srandmember(key) :随机返回名称为key的set的一个元素

   

   8)Hash

   hset(key, field, value):向名称为key的hash中添加元素field

   hget(key, field):返回名称为key的hash中field对应的value

   hmget(key, (fields)):返回名称为key的hash中field i对应的value

   hmset(key, (fields)):向名称为key的hash中添加元素field

   hincrby(key, field, integer):将名称为key的hash中field的value增加integer

   hexists(key, field):名称为key的hash中是否存在键为field的域

   hdel(key, field):删除名称为key的hash中键为field的域

   hlen(key):返回名称为key的hash中元素个数

   hkeys(key):返回名称为key的hash中所有键

   hvals(key):返回名称为key的hash中所有键对应的value

   hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
10月前
|
NoSQL 关系型数据库 MySQL
PHP快速入门13-MySQL数据库与Redis操作
PHP快速入门与实战,本篇文章介绍的内容,MySQL数据库与Redis操作,后续更多内容将收录在专栏PHP快速入门与实战。
|
NoSQL 中间件 Redis
测试中间件 - Redis Desktop Manager 快速入门(三)
测试中间件 - Redis Desktop Manager 快速入门(三)
121 0
测试中间件 - Redis Desktop Manager 快速入门(三)
|
NoSQL 中间件 Redis
测试中间件 - Redis Desktop Manager 快速入门(二)
测试中间件 - Redis Desktop Manager 快速入门(二)
112 1
测试中间件 - Redis Desktop Manager 快速入门(二)
|
SQL 自然语言处理 NoSQL
〖Redis指南①〗快速入门|配置文件|运行镜像|数据结构|常用命令|客户端
Redis诞生于2009年全称是Remote Dictionary Server,远程词典服务器,是一个基于内存的键值型NoSQL数据库。
179 0
〖Redis指南①〗快速入门|配置文件|运行镜像|数据结构|常用命令|客户端
|
存储 缓存 NoSQL
【Spring Boot 快速入门】七、Spring Boot集成Redis
【Spring Boot 快速入门】七、Spring Boot集成Redis
198 0
【Spring Boot 快速入门】七、Spring Boot集成Redis
|
NoSQL 数据库 Redis
Redis快速入门
一、NoSQL介绍 1.1、NoSQL:一类新出现的数据库(not only sql),它的特点: 不支持SQL语法 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式 NoSQL的世界中没有一种通用的语言,每种no...
1780 0
|
存储 NoSQL 关系型数据库
|
存储 NoSQL 数据库
<数据库>高性能Redis快速入门 | (附Redis常用命令)
Redis是一个非关系型数据库,也是一个内存数据库(确切一点,可以把它看做内存数据结构服务器, 设计极其精简,如果说在mongo里面还能看到表的影子"集合(collection)",那么redis则是完全放弃了"表"结构,存储数据完全依赖于 五种类型的数据结构; Redis存储数据 的 五种数据结构 1.
996 0
|
存储 NoSQL 关系型数据库
Redis快速入门
Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案。 Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁盘仅用于持久性。
1188 0
|
4天前
|
存储 监控 NoSQL
Redis哨兵&分片集群
Redis哨兵&分片集群
7 0