redis連線密碼和指定資料庫

2022-02-17 01:58:52 字數 1444 閱讀 2528

臺伺服器上都快開啟200個redis例項了,看著就崩潰了。這麼做無非就是想讓不同型別的資料屬於不同的應用程式而彼此分開。

那麼,redis有沒有什麼方法使不同的應用程式資料彼此分開同時又儲存在相同的例項上呢?就相當於mysql資料庫,不同的應用程式資料儲存在不同的資料庫下。

redis下,資料庫是由乙個整數索引標識,而不是由乙個資料庫名稱。預設情況下,乙個客戶端連線到資料庫0。redis配置檔案中下面的引數來控制資料庫總數:

databases 16

可以通過下面的命令來切換到不同的資料庫下

user

redis> select user

ok隨後,所有的命令將使用資料庫3,知道你明確的切換到另乙個資料庫下。

每個資料庫都有屬於自己的空間,不必擔心之間的key衝突。

不同的資料庫下,相同的key取到各自的值。

flushdb命令清除資料,只會清除當前的資料庫下的資料,不會影響到其他資料庫。

flushall命令會清除這個例項的資料。在執行這個命令前要格外小心。

資料庫的數量是可以配置的,預設情況下是16個。修改redis.conf下的databases指令:

databases 64

redis沒有提供任何方法來關聯標識不同的資料庫。因此,需要你來跟蹤什麼資料儲存到哪個資料庫下。

因此上面的快開啟200個例項的場景,可以使用不同的資料庫來儲存,而不必開啟如此那麼多的例項。

實際程式設計中,redis分片操作,引用jedis jar包

import redis.clients.jedis.jedisshardinfo;

jedisshardinfo shard = new jedisshardinfo(node.gethost(), node.getport(), node.getname());

shard.setpassword(node.getpassword());

shard.setdb(dbindex);

shards.add(shard);

這裡的shard.setdb(2) 相當於控制台裡輸入 "select 2" 選擇資料庫2(是從資料庫0開始的)

<?php

$redis = new redis();

$redis->connect('127.0.0.1', 6379); //連線redis

$redis->auth('mypasswords123sdfeak'); //密碼驗證

$redis->select(user);//選擇資料庫user

$redis->set( "testkey" , "hello redis"); //設定測試key

echo $redis->get("testkey");//輸出value

?>

redis.conf的配置檔案中檢視密碼  搜尋 requirepass

強制關閉指定資料庫連線

強制關閉指定資料庫連線 還原資料庫的時候是不是經常出現資料庫正在使用無法還原?雖然關掉所有程式,可是還是還原不了資料庫?執行以下 吧!斷開所有使用者開啟的連線 use master go if exists select from dbo.sysobjects where id object id ...

指定資料庫讀寫分離操作

方式一 是檢視裡面用using方式可以進行指定到哪個資料讀寫 普通使用者 手動指定去某個資料庫取資料 方式二 寫配置檔案 class router1 指定到某個資料庫取資料 def db for read self,model,hints attempts to read auth models g...

給指定資料庫表中新增指定列

存在actor表,包含如下列資訊 create table ifnot exists actor actor id smallint 5 not null primary key,first name varchar 45 not null,last name varchar 45 not null...