Redisキャッシュデータベースサーバ
RedisキャッシュデータベースサーバRedisは、オープンソースのテクノロジーとメモリを永続化できるログ型であり、Key-ValueデータベースRedisのストレージはメモリストレージ、ディスクストレージ、ログファイルの3つの部分に分けられ、プロファイルには3つのパラメータが構成されています.
利点:Mecachedよりも安全で、格納されているvalueタイプが相対的に多くサポートされています.Redisは、定期的に更新されたデータをディスクに書き込むか、修正操作を追加の記録ファイルに書き込むことにより、マスタースレーブ同期を実現します
/var/log/redis_6379.logログファイル/var/lib/redis/6379データディレクトリ/usr/local/bin/redis-server Redisサーバソフトウェアストレージパス
vim/etc/redis/6379.confプロファイル.....maxmemory最大メモリmaxmemory-policy volatile-lruメモリがいっぱいの場合、LRUアルゴリズムを使用して古いデータdaemonize yesデーモンpidfile/var/run/redis_をクリーンアップ6379.pidプロセスPIDport 6379ポート番号timeout 300接続タイムアウトloglevel noticeログレベルlogfile/var/log/redis_6379.logログファイルdatabases 16データベース個数save 900 1データベースミラー周波数dbfilename dump.rdbミラーバックアップファイル名/var/lib/redis/6379バックアップファイルパスslaveeofプライマリサーバIPおよびポートを設定し、プライマリサーバとデータをアクティブに同期masterauthプライマリ認証パスワードrequirepass foobaredクライアントからサーバに接続した後、パスワードを入力してから、他の操作maxclients 10000最大クライアント同時接続数maxmemory最大メモリ使用量
flushallすべてのデータをクリア
rename key newkeyはkeyにnewkeyと改名し、newkeyがすでに存在する場合、その値を上書きする
一、redis基礎管理1、tar xzf redis-3.0.6をインストールする.tar.gz cd redis-3.0.6/make && make install
2、初期化./utils/install_server.shヒントの問題はすべて車に戻ることができますが、各種ファイルの保存経路を観察します.
3、サービス管理ls/etc/init.d/redis_6379//起動スクリプトの表示サービスredis_6379 statusステータス表示サービスredis_6379 stopservice redis_6379 startnetstat -nautlp |grep redis
4、サーバー基礎テストredis-cli pingテストサーバーPONG 127.0.0.1:6379>set username songtao設定変数127.0.0.1:6379>get username test値「songtao」127.0.0.1:6379>set counter 10 OK 127.0.0.1:6379>INCR counter 11127.0.1:6379>GET counter"11"127.0.0.1:6379>INCR mycounter設定カウンタmycounter(integer)1127.0.1:6379>INCR mycounterカウンタmycounterによる自己加算(integer)2
5、操作文字列フォーマット:set key value[ex seconds][px milliseconds][nx|xx]キーと値(value)を設定し、有効期限は秒またはミリ秒単位に設定できます.nxはkeyが存在しない限り、keyを操作xxはkeyが存在し、keyを操作する
incr keyはkeyの値に1を加え、keyが存在しない場合は0に初期化してからカウンタに1を追加します.
set page 20incr page
例・redis-cli 127.0.0.1:6379>set first'hello world'設定文字列変数127.0.0.1:6379>get first"hello world"127.0.0.1:6379>SETRANGE first 6'hehehehehe'は6文字目から修正するhello hehehehehe 127に書き換えられる.0.0.1:6379>get first 127.0.0.1:6379>APPEND username"sudan"変数に127.0.0.1を追加:6379>SETBIT mytest 0 1(integer)0127.0.0.0.1:6379>SETBIT mytest 1 0(integer)0127.0.1:6379>get mytest 127.0.0.1:6379>SETBIT peter 100 1 2進数を設定100位1(integer)0127.0.1:6379>SETBIT peter 105 1 2進数を設定105位1(integer)0127.0.0.1:6379>BITCOUNT peter統計peter 1の桁数がどれくらいあるか(integer)2127.0.1:6379>set num 1 100はnum 1=100 OK 127に相当する.0.0.1:6379>get num 1"100"127.0.0.1:6379>INCR num 1相当num 1+(integer)101127.0.0.1:6379>DECR num 1相当num 1 1-(integer)100127.0.0.1:6379>DECRBY num 1 10#num 1=num 1-10127.0.0.1:6379>INCRBY num 1 10#num 1=num 1+10127.0.0.1:6379>set hi"hello world"127.0.1:6379>STRLEN hi 127.0.0.1:6379> GETRANGE hi 6 -1127.0.0.1:6379> GETRANGE hi 6 1127.0.0.1:6379> set num2 10.5127.0.0.1:6379> INCRBYFLOAT num2 0.3"10.8"127.0.0.1:6379> INCRBYFLOAT num2 -0.8"10"127.0.0.1:6379> MGET num1 num2127.0.0.1:6379> MSET a 10 b "abc"OK127.0.0.1:6379> get a"10,"127.0.0.1:6379> get b"abc"
HashテーブルデータRedis hashはstringタイプのfieldとvalueのマッピングテーブルです.1つのkeyは複数のfieldに対応し、1つのfieldは1つのvalueに対応して1つのオブジェクトをhashタイプに格納し、各フィールドよりもsrtingタイプに格納するとメモリを節約できます.
例:redis-cli 127.0.0.1:6379> hset site google "www.google.com"(integer) 1127.0.0.1:6379> hset site baidu "www.baidu.com"(integer) 1127.0.0.1:6379> HGET site google"www.google.com"127.0.0.1:6379> hget site baidu"www.baidu.com"127.0.0.1:6379> hmset site2 tudu "www.tedu.cn"tar "www.tarler.com"127.0.0.1:6379> hmget site2 tudu tar127.0.0.1:6379>HKEYS site keyに存在するvalue 127を表示する.0.0.1:6379> HKEYS site2127.0.0.1:6379>HGETALL siteはfieldとvalue 127を返す.0.0.1:6379>HVALssiteはsite中のすべてのvalue 127を返す.0.0.1:6379>HDEL site google siteからgoogleを削除
listリストRedisのlistは1つの文字キューで1つのkeyは複数の値を持つことができます
例:redis-cli 127.0.0.1:6379> LPUSH mylist chenshun chenglixin yegutian127.0.0.1:6379>LRANGE mylist 1-1リストの1位から最後の1位までの値127.0.0.1:6379>LPUSH mylist mayang 127.0.0.1:6379>LRANGE mylist 0-1すべての値を表示127.0.0.1:6379>help@#tabキー127.0.0.1:6379>help@list 127.0.0.1:6379> RPUSH mylist wanghong127.0.0.1:6379> LRANGE mylist 0 -1127.0.0.1:6379> LSET mylist 2 chenyuan127.0.0.1:6379> LLEN mylist127.0.0.1:6379> LPOP mylist127.0.0.1:6379> RPOP mylist127.0.0.1:6379> LINDEX mylist 1127.0.0.1:6379> get username127.0.0.1:6379>ttl username#表示生存期間127.0.0.1:6379>PERSIST username#設定期限切れ127.0.0.1:6379>EXPIRE username 30#生存時間30秒127.0.0.1:6379>del mylist#削除mylist#削除mylist 127.0.0.1:6379>keys#すべてのkey 127を表示する.0.0.1:6379> set hello 10OK127.0.0.1:6379> set hllo 20OK127.0.0.1:6379> set habllo 30OK127.0.0.1:6379> set hfllo 40OK127.0.0.1:6379> KEYS h?llo # ?一致文字127.0.0.1:6379>KEYS hllo#一致0から複数の任意の意味文字127.0.0.1:6379>KEYS h[a-z]llo#[]一致文字127.0.0.1:6379>set h 1 llo 5127.0.0.1:6379>KEYS h[a-z 0-9]llo 127.0.0.1:6379> KEYS h[ade0-9]llo127.0.0.1:6379>KEYS 127.0.0.1:6379>FLUSHALLクリア全データ127.0.0.1:6379>KEYS 127.0.0.1:6379>set username zhangsan 127.0.0.1:6379> get username"zhangsan"127.0.0.1:6379> select 1127.0.0.1:6379[1]> get username(nil)127.0.0.1:6379[1]> select 0127.0.0.1:6379> get username"zhangsan"127.0.0.1:6379> select 0127.0.0.1:6379> MOVE username 1(integer) 1127.0.0.1:6379> get username(nil)127.0.0.1:6379> select 1OK127.0.0.1:6379[1]>get username"zhangsan"127.0.0.1:6379[1]>127.0.0.1:6379[1]>127.0.0.1:6379[1]>keys 1)「username」127.0.0.1:6379[1]>RENAME username name#改名OK 127.0.0.1:6379[1]>keys*1)「name」127.0.0.1:6379[1]>get name「zhangsan」127.0.0.1:6379[1]>lpush mylist 10 2 38 69 42127.0.0.1:6379[1]>SORT mylist#はmylist 127を変更しない.0.0.1:6379[1]>LRANGE mylist 0-1127.00.0.1:6379[1]>sort mylist desc#降順127.0.0.1:6379[1]>lpush names zhangsan lisi bob alice 127.0.0.1:6379[1]>sort names alpha#アルファベット順
アルファベット順に並べ替え、下に1と表記された単語から2項127.0.0.1:6379[1]>SORT names alpha limit 1 2127.0.0.0.1:6379[1]>SORT names alpha limit 1 2 descを取り出す
mylistをソートしてmylist 2127として保存します.0.0.1:6379[1]> sort mylist store mylist2127.0.0.1:6379[1]> LRANGE mylist2 0 -1
1、プライマリサーバは既存のredisを使用する
2、サーバーyum install-y gcc gcc-c++tar xzf redis-3.0.6.tar.gz cd redis-3.0.6/make && make install./utils/install_server.sh
3、マスターサーバは同期パスワードvim/etc/redis/6379を設定.confプロファイルrequirepass redis 123サーバパスワードの設定
サービスの再起動:サービスredis_6379 restartまたは/etc/init.d/redis_6379 restart
4、サービスを閉じる認証パスワードvim/etc/initを設定.d/redis_6379 $CLIEXEC -a redis123 -p $REDISPORT shutdown
サービスの再起動:サービスredis_6379 restart
5、セカンダリサーバプロファイルvim/etc/redis/6379を構成する.conf slaveeof 192.168.4.1 6379プライマリサーバipmasterauth redis 123
サービスの再起動:サービスredis_6379 restart
6.主従データが同じかどうかを検証する登録主:redis-cli-h 192.168.4.1-a redis 123192.168.4.1:6379> set aaa 100
From:redis-cli 127.0.0.1:6379>keys*127.0.0.1:6379>get aaa
利点:Mecachedよりも安全で、格納されているvalueタイプが相対的に多くサポートされています.Redisは、定期的に更新されたデータをディスクに書き込むか、修正操作を追加の記録ファイルに書き込むことにより、マスタースレーブ同期を実現します
/var/log/redis_6379.logログファイル/var/lib/redis/6379データディレクトリ/usr/local/bin/redis-server Redisサーバソフトウェアストレージパス
vim/etc/redis/6379.confプロファイル.....maxmemory最大メモリmaxmemory-policy volatile-lruメモリがいっぱいの場合、LRUアルゴリズムを使用して古いデータdaemonize yesデーモンpidfile/var/run/redis_をクリーンアップ6379.pidプロセスPIDport 6379ポート番号timeout 300接続タイムアウトloglevel noticeログレベルlogfile/var/log/redis_6379.logログファイルdatabases 16データベース個数save 900 1データベースミラー周波数dbfilename dump.rdbミラーバックアップファイル名/var/lib/redis/6379バックアップファイルパスslaveeofプライマリサーバIPおよびポートを設定し、プライマリサーバとデータをアクティブに同期masterauthプライマリ認証パスワードrequirepass foobaredクライアントからサーバに接続した後、パスワードを入力してから、他の操作maxclients 10000最大クライアント同時接続数maxmemory最大メモリ使用量
key
>keys * key
>keys h?llo ?
>keys h*llo *
>keys h[ae]llo hello hallo
flushallすべてのデータをクリア
select id
,id , 0
>select 0
>select 1
move key db_id
key db_id
>move key 1 key 1
rename key newkeyはkeyにnewkeyと改名し、newkeyがすでに存在する場合、その値を上書きする
sort key
key
>lpush cost 1 8 7 2 5
>sort cost ,
>sort cost desc
一、redis基礎管理1、tar xzf redis-3.0.6をインストールする.tar.gz cd redis-3.0.6/make && make install
2、初期化./utils/install_server.shヒントの問題はすべて車に戻ることができますが、各種ファイルの保存経路を観察します.
3、サービス管理ls/etc/init.d/redis_6379//起動スクリプトの表示サービスredis_6379 statusステータス表示サービスredis_6379 stopservice redis_6379 startnetstat -nautlp |grep redis
4、サーバー基礎テストredis-cli pingテストサーバーPONG 127.0.0.1:6379>set username songtao設定変数127.0.0.1:6379>get username test値「songtao」127.0.0.1:6379>set counter 10 OK 127.0.0.1:6379>INCR counter 11127.0.1:6379>GET counter"11"127.0.0.1:6379>INCR mycounter設定カウンタmycounter(integer)1127.0.1:6379>INCR mycounterカウンタmycounterによる自己加算(integer)2
5、操作文字列フォーマット:set key value[ex seconds][px milliseconds][nx|xx]キーと値(value)を設定し、有効期限は秒またはミリ秒単位に設定できます.nxはkeyが存在しない限り、keyを操作xxはkeyが存在し、keyを操作する
setrange key offset value
key
set first "hello"
setrange first 5 "xixi" hellxixi
srtlen ket
strlen first
append key value
, key value
key
>append myname jacob
setbit key iffset value
key , (bit)
value 1 0,odffset 0~2^32
key , key
>setbit abc 0 1
>setbit abc 1 0
abc: 0 1, 0
bitcount key
1
>setbit abcd 0 1 //0001
>setbit abcd 3 1 //1001
>bitcount abcd // 2
, key ,offset
offset 1。
>setbit abcd 100 1 // 100 1
>setbit abcd 225 1 // 250 1
>bitcount abcd // 2
decr key
key 1,key 0, 1
>set test 10
>decr test
decrby key decrement
key , decrement
>set count 100
>decrby count 20
get key
key
key nil
key , ,get
getrange key start end
, start end
,-1 ,-2
>set first "hello,the world"
>getrange first -5 -1
>getrange first 0 4
incr keyはkeyの値に1を加え、keyが存在しない場合は0に初期化してからカウンタに1を追加します.
set page 20incr page
incrby key increment
key increment
incrbyfloat key increment
key increment
>set num 16.1
>incrbyfloat num 1.1
mget key [key...]
key ,
mset key value [key value ...]
key ,
例・redis-cli 127.0.0.1:6379>set first'hello world'設定文字列変数127.0.0.1:6379>get first"hello world"127.0.0.1:6379>SETRANGE first 6'hehehehehe'は6文字目から修正するhello hehehehehe 127に書き換えられる.0.0.1:6379>get first 127.0.0.1:6379>APPEND username"sudan"変数に127.0.0.1を追加:6379>SETBIT mytest 0 1(integer)0127.0.0.0.1:6379>SETBIT mytest 1 0(integer)0127.0.1:6379>get mytest 127.0.0.1:6379>SETBIT peter 100 1 2進数を設定100位1(integer)0127.0.1:6379>SETBIT peter 105 1 2進数を設定105位1(integer)0127.0.0.1:6379>BITCOUNT peter統計peter 1の桁数がどれくらいあるか(integer)2127.0.1:6379>set num 1 100はnum 1=100 OK 127に相当する.0.0.1:6379>get num 1"100"127.0.0.1:6379>INCR num 1相当num 1+(integer)101127.0.0.1:6379>DECR num 1相当num 1 1-(integer)100127.0.0.1:6379>DECRBY num 1 10#num 1=num 1-10127.0.0.1:6379>INCRBY num 1 10#num 1=num 1+10127.0.0.1:6379>set hi"hello world"127.0.1:6379>STRLEN hi 127.0.0.1:6379> GETRANGE hi 6 -1127.0.0.1:6379> GETRANGE hi 6 1127.0.0.1:6379> set num2 10.5127.0.0.1:6379> INCRBYFLOAT num2 0.3"10.8"127.0.0.1:6379> INCRBYFLOAT num2 -0.8"10"127.0.0.1:6379> MGET num1 num2127.0.0.1:6379> MSET a 10 b "abc"OK127.0.0.1:6379> get a"10,"127.0.0.1:6379> get b"abc"
HashテーブルデータRedis hashはstringタイプのfieldとvalueのマッピングテーブルです.1つのkeyは複数のfieldに対応し、1つのfieldは1つのvalueに対応して1つのオブジェクトをhashタイプに格納し、各フィールドよりもsrtingタイプに格納するとメモリを節約できます.
hset key field value
hash field value
>hset site google 'www.goog.cn'
>hset site baidu 'www.baidu.com'
hget key filed
hash field
>hget site google
hmset key field value [field value..]
hash field
>hmset site google www.goog.cn baidu www.baidu.com
hmget key field [field...]
hash field
>hmget site google baidu
hkeys key
hash field
>hmset site google www.goog.cn baidu www.baidu.com
>hkeys site
hgetall key
hash field
hvals key
hash field
>hvals key
hdel key field [field...]
hash field ,
>hdel site google baidu
例:redis-cli 127.0.0.1:6379> hset site google "www.google.com"(integer) 1127.0.0.1:6379> hset site baidu "www.baidu.com"(integer) 1127.0.0.1:6379> HGET site google"www.google.com"127.0.0.1:6379> hget site baidu"www.baidu.com"127.0.0.1:6379> hmset site2 tudu "www.tedu.cn"tar "www.tarler.com"127.0.0.1:6379> hmget site2 tudu tar127.0.0.1:6379>HKEYS site keyに存在するvalue 127を表示する.0.0.1:6379> HKEYS site2127.0.0.1:6379>HGETALL siteはfieldとvalue 127を返す.0.0.1:6379>HVALssiteはsite中のすべてのvalue 127を返す.0.0.1:6379>HDEL site google siteからgoogleを削除
listリストRedisのlistは1つの文字キューで1つのkeyは複数の値を持つことができます
lpush key value [value...]
value key
key , key
>lpush list a b c //list1 c b a
lpush list a;lpush list b;lpush list c
lrange key start stop
key stop
>lrange xixi 0 2 0 , 2
>lrange xixi 0 -1
>lrange xixi 0 -2 2
lpop key
,key nil
>lpop xiix ,
llen key
key
lindex key index
index
>lindex key 0
>lindex key -2
lset key index value
key index value
>lset abc 3 test list 3 test
rpush key value [value..]
value key
>rpush haha a b c //haha a b c
>rpush haha d // d
例:redis-cli 127.0.0.1:6379> LPUSH mylist chenshun chenglixin yegutian127.0.0.1:6379>LRANGE mylist 1-1リストの1位から最後の1位までの値127.0.0.1:6379>LPUSH mylist mayang 127.0.0.1:6379>LRANGE mylist 0-1すべての値を表示127.0.0.1:6379>help@#tabキー127.0.0.1:6379>help@list 127.0.0.1:6379> RPUSH mylist wanghong127.0.0.1:6379> LRANGE mylist 0 -1127.0.0.1:6379> LSET mylist 2 chenyuan127.0.0.1:6379> LLEN mylist127.0.0.1:6379> LPOP mylist127.0.0.1:6379> RPOP mylist127.0.0.1:6379> LINDEX mylist 1127.0.0.1:6379> get username127.0.0.1:6379>ttl username#表示生存期間127.0.0.1:6379>PERSIST username#設定期限切れ127.0.0.1:6379>EXPIRE username 30#生存時間30秒127.0.0.1:6379>del mylist#削除mylist#削除mylist 127.0.0.1:6379>keys#すべてのkey 127を表示する.0.0.1:6379> set hello 10OK127.0.0.1:6379> set hllo 20OK127.0.0.1:6379> set habllo 30OK127.0.0.1:6379> set hfllo 40OK127.0.0.1:6379> KEYS h?llo # ?一致文字127.0.0.1:6379>KEYS hllo#一致0から複数の任意の意味文字127.0.0.1:6379>KEYS h[a-z]llo#[]一致文字127.0.0.1:6379>set h 1 llo 5127.0.0.1:6379>KEYS h[a-z 0-9]llo 127.0.0.1:6379> KEYS h[ade0-9]llo127.0.0.1:6379>KEYS 127.0.0.1:6379>FLUSHALLクリア全データ127.0.0.1:6379>KEYS 127.0.0.1:6379>set username zhangsan 127.0.0.1:6379> get username"zhangsan"127.0.0.1:6379> select 1127.0.0.1:6379[1]> get username(nil)127.0.0.1:6379[1]> select 0127.0.0.1:6379> get username"zhangsan"127.0.0.1:6379> select 0127.0.0.1:6379> MOVE username 1(integer) 1127.0.0.1:6379> get username(nil)127.0.0.1:6379> select 1OK127.0.0.1:6379[1]>get username"zhangsan"127.0.0.1:6379[1]>127.0.0.1:6379[1]>127.0.0.1:6379[1]>keys 1)「username」127.0.0.1:6379[1]>RENAME username name#改名OK 127.0.0.1:6379[1]>keys*1)「name」127.0.0.1:6379[1]>get name「zhangsan」127.0.0.1:6379[1]>lpush mylist 10 2 38 69 42127.0.0.1:6379[1]>SORT mylist#はmylist 127を変更しない.0.0.1:6379[1]>LRANGE mylist 0-1127.00.0.1:6379[1]>sort mylist desc#降順127.0.0.1:6379[1]>lpush names zhangsan lisi bob alice 127.0.0.1:6379[1]>sort names alpha#アルファベット順
アルファベット順に並べ替え、下に1と表記された単語から2項127.0.0.1:6379[1]>SORT names alpha limit 1 2127.0.0.0.1:6379[1]>SORT names alpha limit 1 2 descを取り出す
mylistをソートしてmylist 2127として保存します.0.0.1:6379[1]> sort mylist store mylist2127.0.0.1:6379[1]> LRANGE mylist2 0 -1
redis
1、プライマリサーバは既存のredisを使用する
2、サーバーyum install-y gcc gcc-c++tar xzf redis-3.0.6.tar.gz cd redis-3.0.6/make && make install./utils/install_server.sh
3、マスターサーバは同期パスワードvim/etc/redis/6379を設定.confプロファイルrequirepass redis 123サーバパスワードの設定
サービスの再起動:サービスredis_6379 restartまたは/etc/init.d/redis_6379 restart
4、サービスを閉じる認証パスワードvim/etc/initを設定.d/redis_6379 $CLIEXEC -a redis123 -p $REDISPORT shutdown
サービスの再起動:サービスredis_6379 restart
5、セカンダリサーバプロファイルvim/etc/redis/6379を構成する.conf slaveeof 192.168.4.1 6379プライマリサーバipmasterauth redis 123
サービスの再起動:サービスredis_6379 restart
6.主従データが同じかどうかを検証する登録主:redis-cli-h 192.168.4.1-a redis 123192.168.4.1:6379> set aaa 100
From:redis-cli 127.0.0.1:6379>keys*127.0.0.1:6379>get aaa