vim修改redis.conf配置檔案(我的已經複製到虛擬機器的/usr/local/redis/bin目錄下)為daemonize yes, 以後端模式啟動 ./redis-server redis.conf
bin目錄下執行 ./redis-cli連線客戶端 輸入ping回應pang成功
=================================================================================================================================================================
String的形式
set name xiaoming
get
是String操作也是後來key的操作
del 後面接鍵名 不關什麼串 集合都幹掉
keys * 可以看所有key的值 存了些什麼 也可 keys my* 也可keys my?????
追加判斷建 exists num 判斷num存在嗎? rename num num1 重新命名鍵值 expire test 10 (先set test xiaohong 10秒後再get發現已逝世)
ttl test 還剩多久活-2 表示死了 -1表示沒設定過期
type num 返回型別的 String Set SortedSet List
incr
decr
incrby num 5
decrby num 5
append num any (追加成新字串)
=================================================================================================================================================================
HashMap的形式
hset 外圍鍵名 內部鍵名 值
hget 外圍鍵名 內部鍵名 值
hmset 外名 內名 值 內名2 值 內名3 值…
HMGET user1 name age email phone address
hgetall 外圍鍵名
hdel user1 name (使用del會刪除整個user1)
hincrby user1 age 5
hexists user1 age
hlen user1
hkeys user1
hvals user1
=================================================================================================================================================================
linux 中redis的第三種 連結串列LinkedList集合形式 有序不唯一
lpush 1 2 3 4 5 從左壓棧
rpush a b c d e 從右壓棧
lrange mylist1 0 9 從左遍歷
不知道有多少個呢?如何要全部?
lrange mylist1 0 -1 (負數表示倒數)
不知道多少,剩一個不要
lrange mylist1 0 -2
lpop mylist1 從左側彈出
rpop mylist1 從右側彈出
llen mylist1 集合長度
lpushx mylist1 f 僅當mylist1存在時從左存入一個
rpushx mylist1 f 僅當mylist1存在時從右存入一個
lrem mylist1 1 1 刪除集合中的1個元素 刪除值為左起第一個1
lrem mylist1 2 9 刪除集合中的2個元素 刪除值為左起前兩個9
lrem mylist1 -1 f 刪除集合中的1個元素 刪除值為右起第一個f
lrem mylist1 0 f 刪除所有f
linsert mylist1 before a x 在a前插
linsert mylist1 after a x 在a後插
rpoplpush mylist1 mylist2 從集合1的右邊彈出一個放到集合2的左邊 (這個的作用涉及到多執行緒的生產者消費者模型-別人管生產任務,你管消費任務,執行緒池消化任務) (發郵件我還沒有做)
========================================================================================================================================================================
Set集合形式
sadd myset a b c c d e e 集合無序 唯一特點
srem myset b 刪除一條
SMEMBERS myset 遍歷
sismember myset a 判斷a是集合的成員
—————————————————
sadd zhangsanset lisi wangwu tianqi tom
sadd lucyset tom rose jack
找不同 zhangsan有lucy沒有
sdiff zhangsanset lucyset
找不同 lucy有zhangsan沒有
sdiff lucyset zhangsanset
求交集
sinter zhangsanset lucyset
求合集
sunion zhangsanset lucyset
scard zhangsanset 求集合個數
srandmember zhangsanset 隨機抽取
————————————–
前邊的三個集合求完沒有儲存結果
sdiffstore jieguo zhangsanset lucyset
sinterstore jieguo zhangsanset lucyset
sunionstore jieguo zhangsanset lucyset
===============================================================================================================================================================
SortedSet形式
zadd myset1 21 zhangsan 38 lisi 308 wangu 每個資料前有個權重做排序用 修改就是再新增一個用新值
zrange myset1 0 -1 遍歷與有序連結串列相同
zrange myset1 0 -1 withscores 遍歷與有序連結串列相同
zscore myset1 zhangsan 張三多少分
zcard myset1 獲取大小
zrem myset1 lisi 刪除某個元素
zrevrange myset1 0 -1 反向遍歷 從高到低
zremrangebyrank myset1 0 1 從開始到結束的刪除
zremrangebyscore myset1 30 40 從開始到結束的分數刪除
zrangebyscore myset1 100 150 limit 0 2根據分數排序查詢 只要前兩條
zincrby myset1 3 xiaohu 給誰增長3分發帖經驗
zcount myset1 100 150 分數之間有多少人
zrank myset1 xiaohu 從小到大排第幾
zrevrank myset1 xiaohu 從大到小排第幾 0表示第一
===============================================================================================================================================================
jedis java連線redis的jar包匯入後set get方法運算元據發現Connection Excepiton 修改Linux防火牆 增加埠成功(同Tomcat 外地IP無法訪問)
Linux 安裝Tomcat 配置防火牆後,本地可以訪問,外地通過IP無法訪問,防火牆配置沒有起作用原因
(配置Linux防火牆 vim /etc/sysconfig/iptables 增加埠 重啟服務service iptables restart)
-A INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT
這句沒有放在適當的位置
應該放在22埠的下邊
JedisPool(jedisPoolConfig,”192.168.199.129″,6379)得到的jedis.set(“things”,”寫中文”) 在jedis伺服器端會中文顯示16進位制?
//這個方法是載入類路徑下的資源 src下的
properties.load(RedisUtils.class.getClassLoader().getResourceAsStream(“redis.properties”));
補充:
redis也是有多資料庫的 在mysql下有use切換資料庫 在redis下使用 select 1 可以在0號庫move name 1 把內容移到1號庫 info檢視單機還是叢集模式standalone linux版本各種資訊
dbsize 資料庫有多少個key flushdb清空資料庫
訂閱subscribe cctv5與釋出 publish cctv5 hahaha 雙擊再建一個連線 倆個連線做不同的事一個訂閱一個釋出
事務的特性:acid 原子性 (Atomicity)、一致性(Consistency)、隔離性(Isolation)、永續性(Durability)
————————————————————–
redis的事務 redis的3條指令要挨著執行就是事務了 redis是單執行緒的 使用multi命令讓資料在queued佇列中等待一起exec
當發生錯誤 在set num4 xiaoming 後incr num4發生錯誤 redis根本沒有回滾 該執行還是執行了 有個discard不是回滾是撤銷上一條指令
redis的持久化,當redis程式被kill -9 27921 後,在啟動服務啟動客戶端 發現資料還在 因為在安裝目錄有一個檔案dump.rdb每個一段時間把資料存在硬碟上
他的奧祕在redis.conf配置檔案中有一個 save 900 1 save 300 10 save 60 10000
redis 可以在配置檔案中配置密碼 requiredpass 輸密碼