精华内容
下载资源
问答
  • 清空redis缓存
    2022-06-09 10:14:21

    redis目录下命令窗口

    在redis的目录下(C:\Program Files\Redis)shift键+右键,点击 Windows PowerShell 快速进入redis命令窗口

    登陆客户端

    PS C:\Program Files\Redis> ./redis-cli -h 127.0.0.1 -p 6379
    

    选择数据库

    127.0.0.1:6379> select index
    

    查看数据库大小

    127.0.0.1:6379> dbsize
    

    清空redis缓存

    127.0.0.1:6379> flushdb
    

    注意

    清空全部数据不用进入某个库里,直接执行flushall。如果就清空某个数据库而已首先要选择进入某个库 select index ,进入到指定数据库执行 flushdb

    更多相关内容
  • 清空redis缓存

    2021-03-16 16:51:11
    做双十一的接口压测,每次压测接口前需要清空redis 对应的 key 的 缓存,但是用的链接redis终端,每次清缓存,都要在终端的key的每个value手动点一次删除,很麻烦,而且,点得稍微频繁一点,终端就会卡死,很影响...

    一、背景:

    做双十一的接口压测,每次压测接口前需要清空redis 对应的 key 的 缓存,但是用的链接redis终端,每次清缓存,都要在终端的key的每个value手动点一次删除,很麻烦,而且,点得稍微频繁一点,终端就会卡死,很影响效率,压测联调有很多的时间都浪费在这个终端。

     

    二、方案

    只能写一个工具,批量获取redis的key:value值,并清空缓存value

    代码:

    # !/usr/bin/python
    # -*- coding:utf-8 -*-
    # Time    : 2020-10-31 10:02
    # author  : Zhoujunjun
    # File    : py_redis
    
    import redis
    from rediscluster import StrictRedisCluster
    import threading
    from time import ctime
    import time,sys,os
    
    # 链接单个机器的redis
    # r = redis.StrictRedis(host='redis5-test.swj.com',port=7619,db=0)
    # 写入key:value
    # r.set.set('test','zjntest')
    # 测试是否可以根据key,查询出value,证明链接成功
    # print(redis_conn.keys('test'))
    # 删除key的vlue
    # r.delete("test")
    # r.keys("Swj:ActivityCenter:*");
    # print(r.keys("Swj:ActivityCenter:*"))
    
    
    # 链接机器集群的redis
    class RedisCluster(object):  # 连接redis集群
        def __init__(self,conn_list):
            self.conn_list = conn_list  # 连接列表
    
        def connect(self):
            """
            连接redis集群
            :return: object
            """
            try:
                # 非密码连接redis集群
                # 跳过检查的参数 skip_full_coverage_check=True
                redisconn = StrictRedisCluster(startup_nodes=self.conn_list,skip_full_coverage_check=True)
                # 使用密码连接redis集群
                # redisconn = StrictRedisCluster(startup_nodes=self.conn_list, password='123456')
                return redisconn
            except Exception as e:
                print(e)
                print("错误,连接redis 集群失败")
                return False
    
        def get_state(self):
            """
            获取状态
            :return:
            """
            res = RedisCluster(self.conn_list).connect()
            # print("连接集群对象",res,type(res),res.__dict__)
            if not res:
                return False
    
            dic = res.cluster_info()  # 查看info信息, 返回dict
    
            for i in dic:  # 遍历dict
                ip = i.split(":")[0]
                if dic[i].get('cluster_state'):  # 获取状态
                    print("节点状态, ip: ", ip, "value: ", dic[i].get('cluster_state'))
    
    redis_basis_conn = [{'host': 'redis1-test.swj.com', 'port': 7615},
                        {'host': 'redis2-test.swj.com', 'port': 7616},
                        {'host': 'redis3-test.swj.com', 'port': 7617},
                        {'host': 'redis4-test.swj.com', 'port': 7618},
                        {'host': 'redis5-test.swj.com', 'port': 7619},
                        {'host': 'redis6-test.swj.com', 'port': 7620}]
    
    redis_conn = RedisCluster(redis_basis_conn).connect()
    
    """测试 redis写入、获取、删除 是否成功"""
    # redis_conn.set('test','zjntest')
    # print(redis_conn.keys('test'))
    # redis_conn.delete('test')
    # print(redis_conn.keys('test'))
    
    """删除全部缓存"""
    # 获取 redis 双十一抢奖品的缓存
    # swj = redis_conn.keys('Swj:ActivityCenter:*')
    # 删除 redis 缓存
    # print('start at:', ctime())
    # for i in swj:
    #     redis_conn.delete(i)
    # print('end at:', ctime())
    # swj = redis_conn.keys('Swj:ActivityCenter:*')
    # print(len(swj))
    
    """只删除抢券活动的缓存"""
    # 执行数据库脚本之前清
    # swj = redis_conn.keys('Swj:ActivityCenter:HasWinPrize:*')
    swj = redis_conn.keys('Swj:ActivityCenter:PrizeQueue-15')
    # 执行数据库脚本之后清
    # swj = redis_conn.keys('Swj:ActivityCenter:AllSeason')
    # swj = redis_conn.keys('Swj:ActivityCenter:ActivitySeason-15')
    # print(len(swj))
    print(len(swj))
    # 由于删除速度比较慢,1s才删除100多个,3w个值,需要删除2-3分钟,所以开多个线程删除
    # 把redis缓存列表分成6段,开6个线程分布清除
    l = len(swj)//6
    def swj_del_t1():
        print('child thread 1, start at:', ctime())
        k = 0
        for i in swj[0:l+1]:
    		k += 1
            redis_conn.delete(i)
        print('delete_num:' + str(k))
        print('child thread 1, end at:', ctime())
    
    
    def swj_del_t2():
        print('child thread 2, start at:', ctime())
        k = 0
        for i in swj[l:2*l+1]:
            k += 1
            redis_conn.delete(i)
        print('delete_num:'+ str(k))
        print('child thread 2, end at:', ctime())
    
    def swj_del_t3():
        print('child thread 3, start at:', ctime())
        k = 0
        for i in swj[2*l:3*l+1]:
            k += 1
            redis_conn.delete(i)
        print('delete_num:'+ str(k))
        print('child thread 3, end at:', ctime())
    
    def swj_del_t4():
        print('child thread 4, start at:', ctime())
        k = 0
        for i in swj[3*l:4*l+1]:
    		k += 1
            redis_conn.delete(i)
        print('delete_num:' + str(k))
        print('child thread 4, end at:', ctime())
    
    def swj_del_t5():
        print('child thread 5, start at:', ctime())
        k = 0
        for i in swj[4*l:5*l+1]:
            k += 1
            redis_conn.delete(i)
        print('delete_num:'+ str(k))
        print('child thread 5, end at:', ctime())
    
    def swj_del_t6():
        print('child thread 6, start at:', ctime())
        k = 0
        for i in swj[5*l:]:
            k += 1
            redis_conn.delete(i)
        print('delete_num:'+ str(k))
        print('child thread 6, end at:', ctime())
    t1 = threading.Thread(target=swj_del_t1)
    t2 = threading.Thread(target=swj_del_t2)
    t3 = threading.Thread(target=swj_del_t3)
    t4 = threading.Thread(target=swj_del_t4)
    t5 = threading.Thread(target=swj_del_t5)
    t6 = threading.Thread(target=swj_del_t6)
    t1.start()
    t2.start()
    t3.start()
    t4.start()
    t5.start()
    t6.start()
    t1.join()
    t2.join()
    t3.join()
    t4.join()
    t5.join()
    t6.join()
    swj = redis_conn.keys('Swj:ActivityCenter:*')
    print(len(swj))

    三、使用方法:

    1、在python环境里面安装rediscluster库,

    2、将需要清除缓存的key对应的name(列表里面的值)值作为 redis_conn.keys 的传参

    3、执行代码文件

    展开全文
  • 清空redis缓存.txt

    2019-12-20 20:59:01
    清空redis缓存.txt
  • Redis常用命令,清空Redis缓存数据库

    千次阅读 2021-11-15 09:34:57
    清空数据库: flushdb // 清除当前数据库的所有keys flushall // 清除所有数据库的所有keys 1)连接操作命令 quit:关闭连接(connection) auth:简单密码认证 help cmd: 查看cmd帮助,例如:help quit 2)...

    清空数据库:

    flushdb   // 清除当前数据库的所有keys
    
    flushall    // 清除所有数据库的所有keys
    

    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高级应用

    1、安全性

    设置客户端连接后进行任何操作指定前需要密码,一个外部用户可以再一秒钟进行150W次访问,具体操作密码修改设置redis.conf里面的requirepass属性给予密码,当然我这里给的是primos

    之后如果想操作可以采用登陆的时候就授权使用:

    sudo /opt/java/redis/bin/redis-cli -a primos
    

    或者是进入以后auth primos然后就可以随意操作了

    2、主从复制

    做这个操作的时候我准备了两个虚拟机,ip分别是192.168.15.128和192.168.15.133

    通过主从复制可以允许多个slave server拥有和master server相同的数据库副本

    具体配置是在slave上面配置slave

    slaveof 192.168.15.128 6379

    masterauth primos

    如果没有主从同步那么就检查一下是不是防火墙的问题,我用的是ufw,设置一下sudo ufw allow 6379就可以了

    这个时候可以通过info查看具体的情况

    3、事务处理

    redis对事务的支持还比较简单,redis只能保证一个client发起的事务中的命令可以连续执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务的上下文,连接后续命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中的所有命令。

    比如我下面的一个例子

    set age 100

    multi

    set age 10

    set age 20

    exec

    get age --这个内容就应该是20

    multi

    set age 20

    set age 10

    exec

    get age --这个时候的内容就成了10,充分体现了一下按照队列顺序执行的方式

    discard 取消所有事务,也就是事务回滚

    不过在redis事务执行有个别错误的时候,事务不会回滚,会把不错误的内容执行,错误的内容直接放弃,目前最新的是2.6.7也有这个问题的

    乐观锁

    watch key如果没watch的key有改动那么outdate的事务是不能执行的

    4、持久化机制

    redis是一个支持持久化的内存数据库

    snapshotting快照方式,默认的存储方式,默认写入dump.rdb的二进制文件中,可以配置redis在n秒内如果超过m个key被修改过就自动做快照

    append-only file aof方式,使用aof时候redis会将每一次的函 数都追加到文件中,当redis重启时会重新执行文件中的保存的写命

    令在内存中。

    5、发布订阅消息 sbusribe publish操作,其实就类似linux下面的消息发布

    6、虚拟内存的使用

    可以配置vm功能,保存路径,最大内存上线,页面多少,页面大小,最大工作线程

    临时修改ip地址ifconfig eth0 192.168.15.129

    redis-cli参数

    Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
      -h <hostname>    Server hostname (default: 127.0.0.1)
      -p <port>        Server port (default: 6379)
      -s <socket>      Server socket (overrides hostname and port)
      -a <password>    Password to use when connecting to the server
      -r <repeat>      Execute specified command N times
      -i <interval>    When -r is used, waits <interval> seconds per command.
                       It is possible to specify sub-second times like -i 0.1
      -n <db>          Database number
      -x               Read last argument from STDIN
      -d <delimiter>   Multi-bulk delimiter in for raw formatting (default: \n)
      -c               Enable cluster mode (follow -ASK and -MOVED redirections)
      --raw            Use raw formatting for replies (default when STDOUT is not a  tty)
      --latency        Enter a special mode continuously sampling latency
      --slave          Simulate a slave showing commands received from the master
      --pipe           Transfer raw Redis protocol from stdin to server
      --bigkeys        Sample Redis keys looking for big keys
      --eval <file>    Send an EVAL command using the Lua script at <file>
      --help           Output this help and exit
      --version        Output version and exit
    
    Examples:
      cat /etc/passwd | redis-cli -x set mypasswd
      redis-cli get mypasswd
      redis-cli -r 100 lpush mylist x
      redis-cli -r 100 -i 1 info | grep used_memory_human:
      redis-cli --eval myscript.lua key1 key2 , arg1 arg2 arg3
      (Note: when using --eval the comma separates KEYS[] from ARGV[] items)
    

    常用命令:

    1) 查看keys个数

    keys *      // 查看所有keys
    
    keys prefix_*     // 查看前缀为"prefix_"的所有keys
    

    2) 清空数据库

    flushdb   // 清除当前数据库的所有keys
    
    flushall    // 清除所有数据库的所有keys
    
    展开全文
  • Linux下如何清空Redis缓存

    千次阅读 2021-10-21 13:55:41
    1.首先进到redis的安装目录,进到src目录下,找到redis-cli 2.首先用账号密码的方式进入到redis的服务端 ./redis-cli -h 127.0.0.1 -p 6379 进去后会出现下面的界面ip:port>... 清空当前数据库中的所有 ke..

    1.首先进到redis的安装目录,进到src目录下,找到redis-cli

     2.首先用账号密码的方式进入到redis的服务端

    ./redis-cli -h 127.0.0.1 -p 6379 

    进去后会出现下面的界面ip:port>

    然后,输入密码进行鉴权>auth "yourpassword",鉴权OK后,就可以操作了

    3.

    keys * ——>查看所有key值

    del key ——>删除指定索引的值

    flushdb ——> 清空当前数据库中的所有 key

    flushall ——> 清空整个 Redis 服务器的数据(删除所有数据库的所有 key )

    到这里就清除完毕,不需要重启,不过大家要注意,你们服务器的缓存数据是否重要,是否可以清除,一定要确定清楚,否则不要轻易清除。

    展开全文
  • linux 清空redis缓存

    千次阅读 2020-01-16 13:42:53
    1,进入目录redis下src目录。 #cd redis-2.8.17/src 2,执行redis-cli文件 #./redis-cli 3,执行命令:flushall,出现OK代表执行成功 #flushall 4,退出命令exit #exit 实例: ...
  • Docker清空redis缓存

    千次阅读 2020-10-29 14:17:04
    1、docker ps //查看redis...4、指定key值缓存清理: 1)登录至指定端口的redis服务器 redis-cli -h 127.0.0.1 -p 6379 其中,127.0.0.1可以写成服务器的IP地址,6379为端口号。 注意:如果Redis设置的有密码要用: re
  • 今日为你们带来的文章是关于redis desktopmanager清空Redis缓存的方法,还有不清楚小伙伴和小编一起去学习一下吧。redis desktop manager怎么清空缓存?redis desktop manager清空Redis缓存的方法1.首...
  • * Redis缓存操作 * @author hxm * @version 1.0 * @since 2015.05.04 */ class RCache extends Object implements CacheFace { private $redis = null; //redis对象 private $sId = 1; //servier服务ID ...
  • redis清空缓存

    千次阅读 2021-07-20 08:41:37
    一、windows操作系统: ...redis-server /home/redis/redis_7901.conf 2、然后进入redis安装目录 cd /usr/redis cd /usr/local/software/redis-2.8.3 3、接着redis-cli -p 7901(指定进入端口号为7901的redis数据库
  • 清空数据库:flushdb // 清除当前数据库的所有keysflushall // 清除所有数据库的所有keysRedis常用命令集,清空redis缓存数据库1)连接操作命令quit:关闭连接(connection)auth:简单密码认证help cmd: 查看cmd帮助,...
  • Windows下清理redis缓存

    2022-08-24 14:56:12
    windows清理redis
  • SpringBoot清空所有Redis缓存

    千次阅读 2021-03-16 00:03:52
    /** * 删除所有缓存 */ public void delAll() { Set<String> keys = stringRedisTemplate.keys("*"); if (ObjectUtils.isNotEmpty(keys)) { stringRedisTemplate.delete(keys); } }
  • 测试环境要重构的时候,会把所有的常量redis缓存重新赋值,有些失效的已经会永远的停留在上面,所以,在测试环境开发时候有必要清空所有的redis缓存数据,这样测试起来更为精准,所以可是使用功能jedis的原始方法...
  • 在本篇文章中小编给大家分享了关于window环境手动操作清理redis缓存的方法和技巧,有兴趣的朋友们可以跟着学习下。
  • redis如何清空当前缓存和所有缓存

    千次阅读 2022-02-23 09:16:42
    Windows环境下使用命令行进行redis缓存清理 1、redis安装目录下输入cmd 2、redis-cli -p 端口号 3、flushdb 清除当前数据库缓存 4、flushall 清除整个redis所有缓存
  • Windows 清空Redis数据

    2022-07-30 01:16:59
    Windows 清空redis数据命令
  • redis 清理缓存

    千次阅读 2022-06-01 15:34:00
    redis 清理缓存
  • 清空redis缓存测试

    2021-12-22 15:00:14
    @ApiOperation(value = "清空redis缓存测试") @PostMapping("/store/clearCacheTest") public BaseResponse<PromotionAndProductVo> clearCacheTest() { log.info("/store/clearCacheTest 清空redis缓存...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,357
精华内容 11,342
关键字:

清空redis缓存