redis

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。

save(存储)

set name redis

get(获取)

get name

del(删除)

del name

inrc(自增加一)

1
2
3
4
set number 10
incr number => 11
del number
incr number =>1

expire(存储时间)

expire name 120

ttl(查看剩余时间)

ttl name =>108

被删除后会输出-2,如果输出-1表示永不过期,如果重新set name value,ttl也会被reset

rpush(list末尾添加)

1
2
rpush friends "Jack"
rpush friends "Rose"

lpush(list头部添加)

1
lpush friends "Jesus"

lrange(获取list)

1
2
3
4
5
6
lrange friends 0 -1 =>
1) "Jesus"
2) "Jack"
3) "Rose"
lrange friends 0 1
lrange friends 1 2

-1表示取到list的最后一位

llen(获取list长度)

llen friends => 3

lpop(移除list第一个)

lpop friends =>"Jesus"

rpop(移除list最后一个)

rpop friends

sadd(给set添加数据)

1
2
3
4
sadd heroes "Iron Man"
sadd heroes "Transformers"
sadd heroes "Spider Man"
sadd heroes "Ant Man"

srem(从set移除数据)

srem heroes "Transfromers"

sismember(set中是否包含)

1
2
sismember heroes "Iron Man" => 1
sismember heroes "Flash Man" => 0

0表示不存在,1表示不存在

smembers(获取set所有值)

1
smembers heroes

sunion(合并set)

1
2
3
sadd beauties "Sophie"
sadd beauties "Sheeba"
sunion heroes beauties =>

Sorted Sets

1
2
3
4
5
zadd ranks 3 "Python"
zadd ranks 2 "Java"
zadd ranks 4 "Ruby"
zadd ranks 1 "JavaScript"
zadd ranks 5 "Php"

sorted sets多了一个sorce,根据score排序

zragne

1
2
3
4
zrange ranks 1 3 =>
1) "Java"
2) "Python"
3) "Ruby"

hset(存储对象)

1
2
3
hset user name "Jack"
hset user email "jack@gmail.com"
hset user password "rose"

hgetall(获取对象所有信息)

1
2
3
4
5
6
7
hgetall user =>
1) "name"
2) "Jack"
3) "email"
4) "jack@gmail.com"
5) "password"
6) "rose"

hmset(一次设置多个字段)

1
hmset user:002 name "Hodor" password "holdthedoor" email "hodor@gmail.com"

hget(获取单个字段)

1
hget user:002 name
1
2
3
4
5
HSET user:002 waittime 1000
HINCRBY user:002 waittime 1 => 1001
HINCRBY user:002 waittime 10 => 1011
HDEL user:002 waittime
HINCRBY user:002 waittime 1 => 1

之前使用版本控制工具Git,经常的命令是这些:

  • git clone
  • git branch
  • git checkout
  • git status
  • git add
  • git commit
  • git fetch
  • git pull
  • git merge
  • git push

突然让给版本打个tag,这什么鬼,只是知道基本这个命令,之前基本没使用然后特意翻出来看看

tag

add tag

git tag v1

show tag list

git tag

show format log:

git log --pretty=oneline

quit git log

:q

add tag on commitID(get from git log)

git tag v2.0 commitID

show commit information by tag_name

git show v2.0

checkout branch with tag_name

git checkout -b branch_name tag_name

diff

比较与上次提交的差异

git diff

版本差异比较,如果是统计一下有哪些文件被改动可以使用’–stat’ 参数

比较与其他分支版本之间的差异:

git diff other_branch

比较任意两个版本之间的差异:

git diff master..test

reset

上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,或者 HEAD~2,往上50个版本 HEAD~50

回退所有内容到上一个版本

git reset HEAD^  

回退所有内容到某个版本

git reset --hard commitID

如果后悔了,Git提供了一个命令用来记录你的每一次命令

git reflog

可以找到commitID,然后 git reset –hard commitID

Rainy Night,秋分

秋分

在开发React Native 项目时候,选择Sublime Text编辑器作为开发工具,相对来说sublime轻巧流畅,代码高亮,丰富的插件写写React Native差不多可以了。

1.下载

下载地址:Sublime Text3 ,选择相应平台下载即可。

2.Package Control

想方便的安装插件首先得安装package control,可通过快捷键ctrl+`,调出console,然后粘贴如下代码,点击回车等待安装。

import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

3.安装插件

快捷键Ctrl+shift+P打开安装界面,选择install package,稍等一会儿弹出插件搜索界面,输入插件名称
选择即可安装,react native 相关插件

  • Babel
  • Emmet
  • Termina
  • JsFormat

4.日常快捷键

MacOS:

  • command+P 快速查找,输入@查找函数,输入#匹配文本
  • command+D 多行游标,选中多个当前文本同时编辑
  • command +F 查找内容
  • command +Shift+F 查找并替换
  • ctrl+command+上下箭头 移动当前行
  • command+L 选行,可以此选择下行
  • command+shit+L 选多行
  • command + W 关闭当前窗口
  • command + N 新建
  • ctrl+G 调转到行号处
  • command + Enter 可以在当前行下新建一行
  • command + Shift + Enter 可以在当前行上面添加一行
  • command + Shift + D 复制当前行

Windows:

  • ctrl+P 快速查找,输入@查找函数,输入#匹配文本
  • ctrl+D 多行游标,选中多个当前文本同时编辑
  • ctrl +F 查找内容
  • ctrl +H 查找并替换
  • ctrl+ctrl+上下箭头 移动当前行
  • ctrl+L 选行,可以此选择下行
  • ctrl+shit+L 选多行
  • ctrl + W 关闭当前窗口
  • ctrl + N 新建
  • ctrl+G 调转到行号处
  • ctrl + Enter 可以在当前行下新建一行
  • ctrl + Shift + Enter 可以在当前行上面添加一行
  • ctrl + Shift + D 复制当前行

5.设置

  • tab键空格数 Preference -> Settings-User

     // The number of spaces a tab is considered equal to  
    "tab_size": 4,  
    // Set to true to insert spaces when tab is pressed  
    "translate_tabs_to_spaces": true, 
    
  • 删除末尾空格 Preference -> Settings-User添加:

    "trim_trailing_white_space_on_save": true
    

6.开发时候大家环境要统一,因为我之前安装了JsFormat,会自动格式化代码,结果队友的代码一过来卡卡就变了形状,版本控制合并冲突他么的就上来了,特别烦的是JSX被格式化后各种报错,暗示你有空格字符串,我了个fuck,无奈之下我配合他们ctrl+shit+p->remove package->JsFormat卸载插件。

在CentOS Linux系统上安装NVM(Node version Manager

  1. 安装NVM,运行Install Script

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | bash
    

    可以在GitHub上搜索到nvm仓库。

  2. 安装完成后会出现 Close and reopen your terminal to start using nvm 类似的信息,可以关掉终端再打开,或者运行下面的命令后即可使用nvm:

    source ~/.bashrc
    
  3. 安装验证

    nvm --version
    

    如果输出 0.31.7 那就成功了。