Redis数据类型--string
Redis数据类型--string 五种数据类型:string, list, set, zset, hash 1). string类型 String是最简单的类型,一个key对应一个value,string类型是二进制安全的。Redis的string可以包含任何数据,比如jpg图片或者序列化的对象(PHP中对象序列化函数serialize)
Redis数据类型--string
五种数据类型:string, list, set, zset, hash
1). string类型
String是最简单的类型,一个key对应一个value,string类型是二进制安全的。Redis的string可以包含任何数据,比如jpg图片或者序列化的对象(PHP中对象序列化函数serialize)
内部实现,其本质是一个byte数组,字符串的大小被限制在512M以内
www.2cto.com
[plain]
struct sdshdr {
long len; //buf数组的长度
long free; //buf数组中剩余可用字节数
char buf[]; //存储实际字符串内容
}
操作方法:
a.set方法:
格式:set key value
设置key对应的值为string类型的value,OK=成功,0=失败, 若是该key已经存在,则覆盖其原有值。
[plain]
>set pwd 123456 //即添加一个pwd=123456的k-v
OK
b.get方法:
格式:get key
获取key对应的string值,如果key不存在返回nil
[plain]
>get pwd //即获取pwd对应的值
"123456"
>get name
(nil)
c.setnx方法:
格式:setnx key value
与set相同,不同的是:设置之前要检测key是否已经存在,如果key已经存在,则返回0,(nx = notexist)
www.2cto.com
[plain]
>setnx user zhangsan
(integer) 1
>setnx user lisi
(integer) 0
>get user
"zhangsan"
>set user chuangrain
OK
>get user
"chuangrain"
d. setex方法:
格式:setex key seconds value
设置key对应的值为string类型的value,并指定对此键值对应的有效期seconds
[plain]
>setex tea 10 food //即设置tea=food,指定10秒钟有效时间
OK
>get tea
"food"
>get tea //10s后
(nil)
e.setrange方法:
格式:setrange key offset value
www.2cto.com
用value参数调换指定key对应的字符串值 ,从偏移量offset开始,不存在的key当作空白字符串处理,如果offset大于key对应的字符串长度,那么原字符串和偏移量之间的空白将用零比特(zerobytes, "\x00")来填充,返回被setrange修改后的字符串长度。
[plain]
>set hw "hello word"
OK
>setrange hw 6 "Redis"
(integer)11
>get hw
"helloRedis"
>setrange hello 2 "chuang" //hello不存在
(integer) 12
>get hello
"\x00\x00chuangrain"
>setrange hello 15 rd
(integer) 17
>get hello
"\x00\x00chuangrain\x00\x00\x00rd"
f.mset方法
格式:mset key1 value1 key2 value2 …
一次设置多个key的值,成功返回OK,即全部设置成功,失败返回0,即没有任何设置,此操作具有原子性
g.msetnx方法:
格式:msetnx key1 value1 key2 value2 …
与mset类似,不同的是要检查设置的key是否已经存在,若存在返回0
h.getset方法:
格式:getset key value
设置key对应string类型的value,并返回key的旧值,如果key不存在,先设置key=value,再返回nil
www.2cto.com
[plain]
>get site
"taobao"
>getset site baidu
"taobao"
>get site
"baidu"
i.getrange方法:
格式:getrange key start end
获取key对应value的子字符串,从start开始到end结束,如果end(为正)小于 start(为正),或者key不存在,则返回空字符串"",如果end超出value的长度,则返 回start到value末尾之间的字符串,start和end可以为负,字符串左边的下标从0开始,右边的下标从-1开始。
0
1
2
3
4
b
a
i
d
u
-5
-4
-3
-2
-1
以"baidu"为例,即每个字符可能通过正、负来访问
[plain]
>get site
"baidu"
>getrange site 1 2
"ai"
>getrange site 3 -1
"du"
>getrange www 3 4 //www不存在
""
j.mget方法
格式:mget key1 key2 …
一次获取多个key对应的value值,如果对应的key不存在,则对应返回nil
www.2cto.com
[plain]
>mset user1 taobao user2 baidu
OK
>mget user1 user2 user3 //user3不存在
1) "taobao"
2) "baidu"
3) (nil)
k.incr方法:
格式:incr key
将指定key对应的value原子性的递增1,返回递增后的value值。如果key不存在,设其初始值为0,再递增1。如果value的值不是整型,则会返回失败信息。
www.2cto.com
[plain]
>mset key1 44 key2 1.1 key3 taobao
OK
>incr key1
(integer) 45
>get key1
"45"
>incr key2
(error)ERR value is not an integer or out of range
>incr key3
(error)ERR value is not an integer or out of range
>incr key4 //key4不存在
(integer) 1
l.incrby方法:
格式:incrby key decrement
与incr类似,将指定key对应的value原子性的递增decrement,返回递增后的value 值,如果key不存在, 设其初始值为0,再递增decrement。
m.decr方法:
格式:decr key
与incr作用相反,对key对应的value递减1操作,如果key不存在,则设置key 为初始值为0,再递减1。
[plain]
>decrdeepin //deepin不存在
(integer) -1
n.decrby方法:
www.2cto.com
格式:decrby key decrement
与incrby相反
o.strlen方法:
格式:strlen key
获取key对应的value的字符串长度,如果key不存在返回nil
p.append方法:
格式:append key value
如果key已经存在,将value的数据追加到已存在的value末尾,如果key不存在, 将创建一个新的key/value。返回新value的长度。
www.2cto.com
[plain]
>append site taobao
(integer) 11
>get site
"baidutaobao"
>append test taobao //test不存在
(integer) 6
>get test
"taobao"
q.setbit方法:
格式:setbit key offset value
设置在key对应指定offset上bit的值(value),该值只能为1或者0,返回该offset上原有的bit值。如果key不存在,将创建一个新值,并在指定的offset上设定bit值。如果offset大于value的字符串长度,redis将拉长value值并在指定offset上设置参数中 的bit值,之间添加的bit值为0。注:offset值必须大于0。
www.2cto.com
[plain]
>setbit userkey 7 1 //userkey不存在,从0开始到第2位bit值为1,返回原bit值0
(integer)0
>get userkey
"\x01"//即0000 0001转为16进制
r.getbit方法:
格式:getbit key offset
获取key对应offset上的bit值,如果offset大于value的长度,或者key不存在,或者非二进制型字符串,返回0。
www.2cto.com
[plain]
>getbit userkey 7
(integer) 1
>getbit userkey //user1key不存在
(integer) 0

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Redisクラスターモードは、シャードを介してRedisインスタンスを複数のサーバーに展開し、スケーラビリティと可用性を向上させます。構造の手順は次のとおりです。異なるポートで奇妙なRedisインスタンスを作成します。 3つのセンチネルインスタンスを作成し、Redisインスタンスを監視し、フェールオーバーを監視します。 Sentinel構成ファイルを構成し、Redisインスタンス情報とフェールオーバー設定の監視を追加します。 Redisインスタンス構成ファイルを構成し、クラスターモードを有効にし、クラスター情報ファイルパスを指定します。各Redisインスタンスの情報を含むnodes.confファイルを作成します。クラスターを起動し、CREATEコマンドを実行してクラスターを作成し、レプリカの数を指定します。クラスターにログインしてクラスター情報コマンドを実行して、クラスターステータスを確認します。作る

Redisデータをクリアする方法:Flushallコマンドを使用して、すべての重要な値をクリアします。 FlushDBコマンドを使用して、現在選択されているデータベースのキー値をクリアします。 [選択]を使用してデータベースを切り替え、FlushDBを使用して複数のデータベースをクリアします。 DELコマンドを使用して、特定のキーを削除します。 Redis-CLIツールを使用してデータをクリアします。

Redisのキューを読むには、キュー名を取得し、LPOPコマンドを使用して要素を読み、空のキューを処理する必要があります。特定の手順は次のとおりです。キュー名を取得します:「キュー:キュー」などの「キュー:」のプレフィックスで名前を付けます。 LPOPコマンドを使用します。キューのヘッドから要素を排出し、LPOP Queue:My-Queueなどの値を返します。空のキューの処理:キューが空の場合、LPOPはnilを返し、要素を読む前にキューが存在するかどうかを確認できます。

Centosシステムでは、Redis構成ファイルを変更するか、Redisコマンドを使用して悪意のあるスクリプトがあまりにも多くのリソースを消費しないようにすることにより、LUAスクリプトの実行時間を制限できます。方法1:Redis構成ファイルを変更し、Redis構成ファイルを見つけます:Redis構成ファイルは通常/etc/redis/redis.confにあります。構成ファイルの編集:テキストエディター(VIやNANOなど)を使用して構成ファイルを開きます:sudovi/etc/redis/redis.conf luaスクリプト実行時間制限を設定します。

Redisコマンドラインツール(Redis-Cli)を使用して、次の手順を使用してRedisを管理および操作します。サーバーに接続し、アドレスとポートを指定します。コマンド名とパラメーターを使用して、コマンドをサーバーに送信します。ヘルプコマンドを使用して、特定のコマンドのヘルプ情報を表示します。 QUITコマンドを使用して、コマンドラインツールを終了します。

Redisデータの有効期間戦略には2つのタイプがあります。周期削除:期限切れのキーを削除する定期的なスキャン。これは、期限切れの時間帯-remove-countおよび期限切れの時間帯-remove-delayパラメーターを介して設定できます。怠zyな削除:キーが読み取られたり書かれたりした場合にのみ、削除の有効期限が切れたキーを確認してください。それらは、レイジーフリーレイジーエビクション、レイジーフリーレイジーエクスピア、レイジーフリーラジーユーザーのパラメーターを介して設定できます。

Redisカウンターは、Redisキー価値ペアストレージを使用して、カウンターキーの作成、カウントの増加、カウントの減少、カウントのリセット、およびカウントの取得など、カウント操作を実装するメカニズムです。 Redisカウンターの利点には、高速速度、高い並行性、耐久性、シンプルさと使いやすさが含まれます。ユーザーアクセスカウント、リアルタイムメトリック追跡、ゲームのスコアとランキング、注文処理などのシナリオで使用できます。

Debian Systemsでは、Directoryコンテンツを読み取るためにReadDirシステム呼び出しが使用されます。パフォーマンスが良くない場合は、次の最適化戦略を試してください。ディレクトリファイルの数を簡素化します。大きなディレクトリをできる限り複数の小さなディレクトリに分割し、Readdirコールごとに処理されたアイテムの数を減らします。ディレクトリコンテンツのキャッシュを有効にする:キャッシュメカニズムを構築し、定期的にキャッシュを更新するか、ディレクトリコンテンツが変更されたときに、頻繁な呼び出しをreaddirに削減します。メモリキャッシュ(memcachedやredisなど)またはローカルキャッシュ(ファイルやデータベースなど)を考慮することができます。効率的なデータ構造を採用する:ディレクトリトラバーサルを自分で実装する場合、より効率的なデータ構造(線形検索の代わりにハッシュテーブルなど)を選択してディレクトリ情報を保存およびアクセスする
