Redis常用操作(持续补充)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis常用操作(持续补充)

设置密码


# 设置密码
CONFIG set requirepass "123456"
# 查询密码
CONFIG get requirepass
# 密码登录
AUTH password
auth 123456
# 访问其他服务上redis。需要在本地装redis客户端
redis-cli -h ip地址 -p 6379


Redis常用的操作


  • hash的操作
> hset hash-key sub-key1 value1
(integer) 1
> hset hash-key sub-key2 value2
(integer) 1
> hset hash-key sub-key1 value1
(integer) 0
> hgetall hash-key
1) "sub-key1"
2) "value1"
3) "sub-key2"
4) "value2"
> hdel hash-key sub-key2
(integer) 1
> hdel hash-key sub-key2
(integer) 0
> hget hash-key sub-key1
"value1"
> hgetall hash-key
1) "sub-key1"
2) "value1"


windows 下设置开机自启动


redis-server --service-install redis.windows-service.conf --loglevel verbose


过期时间操作


  • 设置过期时间(单位:秒)


expire key seconds


  • 设置过期时间(时间戳)
expireat key unixTime
  • 设置过期时间(单位:豪秒)
pexpire key milliseconds
  • 返回剩余过期时间(单位:秒)
TTL key


  • 返回剩余过期时间(单位:豪秒)
PTTL key
  • 移除过期时间的设置
persist key


设置ID递增递减

  • key的value每次递增1
incr key


  • key的value每次递增指定数
incrby key num
  • key的value每次减1
encr key
  • key的value每次递减指定数
encrby key num


Redis使用ip地址访问


  1. (必须)修改redis服务器的配置文件redis.windows.conf

注释绑定的主机地址


# bind 127.0.0.1
  1. 修改redis的守护进程为no,不启用
daemonize "no"


  1. (必须)修改redis的保护模式为no,不启用
protected-mode"no"


  1. 在Redis根目录下,以管理员身份打开CMD命令窗口
    输入redis-server redis.windows.conf,启动服务
  2. 在Redis根目录下尝试远程连接并查看
    redis-cli -h ip地址 -p 6379 能够连接
    info 能够输出信息


java使用redis递增


如果key在redis中不存在,则会自动初始化生成key,并返回0。

public Long getIncr(String key){
    RedisAtomicLong redisAtomicLong = new RedisAtomicLong(key, redisTemplate.getConnectionFactory());
    return redisAtomicLong.getAndIncrement();
}


Redis分布式


class Redis{
   /**
     * setNX
     * @param lockKey  锁
     * @param value   请求标识
     * @param exptime 过期时间
     * @return 是否获取到锁
     */
    public boolean tryGetDistributedRedisLock( String lockKey, Serializable value, final long exptime) {
        return (Boolean) redisTemplate.execute(new RedisCallback<Boolean>() {
            @Override
            public Boolean doInRedis(RedisConnection connection) {
                RedisSerializer valueSerializer = redisTemplate.getValueSerializer();
                RedisSerializer keySerializer = redisTemplate.getKeySerializer();
                Object obj = connection.execute("set", keySerializer.serialize(lockKey),
                        valueSerializer.serialize(value),
                        SafeEncoder.encode("NX"),
                        SafeEncoder.encode("EX"),
                        Protocol.toByteArray(exptime));
                return obj != null;
            }
        });
    }
    /**
     * 释放锁
     */
    private  final Long RELEASE_SUCCESS = 1L;
    /**
     * 释放分布式锁
     * @param lockKey 锁
     * @param requestId 请求标识
     * @return 是否释放成功
     */
    public  boolean releaseDistributedRedisLock(String lockKey, String requestId) {
        String script = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end";
        Object result = redisTemplate.execute(new DefaultRedisScript(script,Long.class), Collections.singletonList(lockKey), requestId);
        return RELEASE_SUCCESS.equals(result);
    }
}


相关实践学习
基于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
目录
相关文章
|
6月前
|
NoSQL Unix Redis
Redis - 五种数据类型与常用操作详解-1
Redis - 五种数据类型与常用操作详解-1
50 0
|
存储 缓存 NoSQL
redis 五种数据结构常用操作命令详解(String,list,set,zset,hash)
🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:
397 0
redis 五种数据结构常用操作命令详解(String,list,set,zset,hash)
|
存储 NoSQL Redis
【Redis】基本数据类型常用操作 - Zset (有序集合)
【Redis】基本数据类型常用操作 - Zset (有序集合)
【Redis】基本数据类型常用操作 - Zset (有序集合)
|
存储 NoSQL Redis
【Redis】基本数据类型常用操作 - 哈希Hash
【Redis】基本数据类型常用操作 - 哈希Hash
【Redis】基本数据类型常用操作 - 哈希Hash
|
NoSQL Redis 索引
【Redis】基本数据类型常用操作 - List
【Redis】基本数据类型常用操作 - List
【Redis】基本数据类型常用操作 - List
|
JSON NoSQL Redis
【Redis】基本数据类型常用操作 - String
【Redis】基本数据类型常用操作 - String
【Redis】基本数据类型常用操作 - String
|
存储 消息中间件 缓存
使用RedisTemplate对Redis的常用操作
Redis是一个NoSQL(非关系型数据库)数据库之一,key-value存储系统或者说是一个缓存键值对数据库
344 0