Redis是開源NoSQL中Key-Value資料庫的代表,採用C語言開發,遵循BSD License。支援記憶體、磁碟持久化儲存,同時它具有非常豐富的資料類型,包括字串、鏈表、有序集合等。高可用性方面內建主從架構,叢集功能正在開發當中,非常值得期待。瞭解到它的強大,讓我們首先來安裝和體驗這款NoSQL資料庫。 工具/原料
OS:CentOS6.2 64bit
Software:Redis yum安裝 1
由於CentOS沒有內建redis的repository,首先我們下載第三方fedora repository:
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
2
安裝redis:yum install redis
查看redis安裝項:find / -name *redis*
3
啟動redis服務:redis-server /etc/redis.conf
4
驗證redis服務:telnet localhost 6379
set kin 1
get kin END
源碼安裝
下載源碼安裝包:
yum install tcl #redis需要安裝tcl
yum install gcc #編譯需要gcc
yum install jemalloc-devel
cd /usr/local/src
wget http://download.redis.io/releases/redis-2.8.9.tar.gz
tar xvzf redis-2.8.9.tar.gz
cd redis-2.8.9
make #編譯
make install #安裝
將設定檔複製到/etc目錄下:
cp redis.conf /etc/
vi /etc/redis.conf
daemonize no => daemonize yes
啟動redis服務:
redis-server /etc/redis.conf
驗證redis服務:
redis-cli ping
PONG
redis-cli
set kin 1
get kin
以下內容參考文章:http://doc.redisfans.com/set/srandmember.html SRANDMEMBER
SRANDMEMBER key [count]
如果命令執行時,只提供了 key 參數,那麼返回集合中的一個隨機元素。
從 Redis 2.6 版本開始, SRANDMEMBER 命令接受可選的 count 參數: 如果 count 為正數,且小於集合基數,那麼命令返回一個包含 count 個元素的數組,數組中的元素各不相同。如果 count 大於等於集合基數,那麼返回整個集合。 如果 count 為負數,那麼命令返回一個數組,數組中的元素可能會重複出現多次,而數組的長度為 count 的絕對值。
該操作和 SPOP 相似,但 SPOP 將隨機元素從集合中移除並返回,而 SRANDMEMBER 則僅僅返回隨機元素,而不對集合進行任何改動。 可用版本: >= 1.0.0 時間複雜度: 只提供 key 參數時為 O(1) 。 如果提供了 count 參數,那麼為 O(N) ,N 為返回數組的元素個數。 傳回值: 只提供 key 參數時,返回一個元素;如果集合為空白,返回 nil 。 如果提供了 count 參數,那麼返回一個數組;如果集合為空白,返回空數組。
# 添加元素redis> SADD fruit apple banana cherry(integer) 3# 只給定 key 參數,返回一個隨機元素redis> SRANDMEMBER fruit"cherry"redis> SRANDMEMBER fruit"apple"# 給定 3 為 count 參數,返回 3 個隨機元素# 每個隨機元素都不相同redis> SRANDMEMBER fruit 31) "apple"2) "banana"3) "cherry"# 給定 -3 為 count 參數,返回 3 個隨機元素# 元素可能會重複出現多次redis> SRANDMEMBER fruit -31) "banana"2) "cherry"3) "apple"redis> SRANDMEMBER fruit -31) "apple"2) "apple"3) "cherry"# 如果 count 是整數,且大於等於集合基數,那麼返回整個集合redis> SRANDMEMBER fruit 101) "apple"2) "banana"3) "cherry"# 如果 count 是負數,且 count 的絕對值大於集合的基數# 那麼返回的數組的長度為 count 的絕對值redis> SRANDMEMBER fruit -101) "banana"2) "apple"3) "banana"4) "cherry"5) "apple"6) "apple"7) "cherry"8) "apple"9) "apple"10) "banana"# SRANDMEMBER 並不會修改集合內容redis> SMEMBERS fruit1) "apple"2) "cherry"3) "banana"# 集合為空白時返回 nil 或者空數組redis> SRANDMEMBER not-exists(nil)redis> SRANDMEMBER not-eixsts 10(empty list or set)
以下內容參考文章:http://blog.csdn.net/yhl27/article/details/9936189
[Redis] redis-cli 命令總結
Redis提供了豐富的命令(command)對資料庫和各種資料類型進行操作,這些command可以在Linux終端使用。
在編程時,比如使用Redis 的Java語言套件,這些命令都有對應的方法。下面將Redis提供的命令做一總結。
官網命令列表:http://redis.io/commands (英文)
1、串連操作相關的命令
quit:關閉串連(connection)
auth:簡單密碼認證
2、對value操作的命令
exists(key):確認一個key是否存在
del(key):刪除一個key